87,992
社区成员
发帖
与我相关
我的任务
分享Number.prototype.add=function(){//....}Number.add = function(){//...}
Number.add=function(){//....}
每次实例化Number的对象都要构造一次add函数,比较影响性能。函数不需要改变,所以Number实力都共用一个方法就好,所以写成Number.prototype.add=function(){//....}
总之:效率问题
function Foo(){...};//此为构造函数
Foo.method1=function(){...}
//此为构造函数的方法即:静态方法,因为构造函数也是一个对象,所以静态方法是作为构造函数的一个属性而存在的。
//静态方法的调用:Foo.method()
Foo.prototype.method2=function(){...}
//此为对象方法,构造函数的prototype属性值是一个对象,prototype对象的所有属性是被实例化对象所共享的,因此对象方法method2作为prototype对象的一个属性是被所有实例化Foo后的每个对象所共享的。
//对象方法的调用:
var obj=new Foo();//首先实例化对象
obj.method2();//然后调用
静态方法是指挂靠在构造函数上的方法。
对象方法,是指在构造函数的原型中定义的,每个实例化对象都有的方法。
Number.add=function(){
console.log("add");
};
var num=1;
num.constructor.add();
这是不标准的,也不方便,而且add内部上下文无法引用num...