Function.prototype.method = function(name,func){
this.prototype[name] = func;
return this;
};
this.prototype[name]这句是啥意思?没弄明白。
9 回复
呵呵,这个举个小例子你就可以看出来了
var a = function() {
console.log(1);
}
var b = function() {
console.log(2);
}
a.method('b', b);
var c = new a();
c.b();
Function.prototype.method = function(name,func){
this.prototype[name] = func;
return this;
};
function Fun(){
}
var Func = Fun.method('getValue',function(value){
return 'this is value:'+value;
});
print(new Func().getValue(8));//this is value:8
解释一下:
- Function.prototype.method 在 Function原型上定义了method方法,作用是在调用method方法的对象上添加了‘name’属性
- 然后我们定义Fun构造函数,Fun.proto即 Function.prototype,所以Fun拥有method方法,我们来调用它,得到Func,Func即是拥有name(也就是getValue)方法的构造函数。
- 然后new一个Func对象出来,调用getValue方法