静态,只有一个"实例".实用于那些唯一的对象如 获取浏览器信息,cookie 操作var cookieHelp={
get:function(key){},
set:function(key,value){}
};
实例方法,可以实例化多个对象。实用于一个页面可能不唯一的对象。
比如 选项卡封装类,省市2级联动封装类var Tab=function(){
this.setTab=function(){};
}var tab1=new Tab();
var tab2=new Tab();
get:function(key){},
set:function(key,value){}
};
实例方法,可以实例化多个对象。实用于一个页面可能不唯一的对象。
比如 选项卡封装类,省市2级联动封装类var Tab=function(){
this.setTab=function(){};
}var tab1=new Tab();
var tab2=new Tab();
以上纯属个人胡诌。
rabbit1.getColor();
rabbit1.eat('carrot');
rabbit1.run();getColor eat肯定会设计成实例方法,因为方法是围绕对象的,是对象的某个特征,不同的兔子可以有不同的颜色。
如上的方法,要写成静态的也可以,只是就会感觉很别扭:
Rabbit.getColor(rabbit1);
Rabbit.makeItRun(rabbit1);
Rabbit.letItEat(rabbit1,'carrot');//让兔子1吃胡萝卜 很奇怪的API如果我们想有一个函数,它能为特定的兔子定制一个合适的笼子,我们姑且叫他createComfortableCage,那我宁愿写成静态方法。
cage1 = Rabbit.createComfortableCage(rabbit1);当然,如果这个静态方法写在Cage类上,会更好。
cage1 = Cage.createComfortableCage(rabbit1);
cage1.getWidth();
cage1.getPrice();
...
function A(){}
A.staticMethof = function(){
alert('静态方法');
}
A.prototype.instaceMethod = function(){
alert('实例方法');
}
A.staticMethof();
var instace = new A();
instace.instaceMethod();LZ可以这么理解,静态方法是类直接调用,实例方法要new 出来的对象才能调用。怎么用就看具体问题了。
A.staticMethod = function(){
alert('静态方法');
}
A.prototype.instaceMethod = function(){
alert('实例方法');
}
A.staticMethod();
var instace = new A();
instace.instaceMethod();写错一个单词
A.staticMethod = function(){
alert('静态方法');
}
A.prototype.instaceMethod = function(){
alert('实例方法');
}
A.staticMethod();
var instace = new A();
instace.instaceMethod();写错一个单词function A(){}
A.staticMethod = function(){
alert('静态方法');
}
A.prototype.instaceMethod = function(){
alert('实例方法');
}
A.staticMethod();
var instace = new A();
instace.instaceMethod();写错一个单词
这个 结局了我的 问题 真是太感谢了