这个函数该如何理解?
Function.prototype.method=function(name,func){
this.prototype[name]=func;
return this;
};
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
给Function对象增加一个扩展原型方法的方法,使用该方法发可以增加Function的新的方法name,并返回该对象本身(看样子是要链式操作)。在日常开发中经常会给一个外部引入类库或方法增加自己的私有方法,但又不希望直接修改原文件或里面代码,而是以一种更加灵活的方法进行扩展,就可以使用以上方式。例如:
主要是给对象添加原型属性。。
function MyClass(aa) {
this.aa = aa;
// blabla....
}
MyClass.prototype.getSomeProp = function (name) {
return this[name];
}
为了提高上面这种添加原型属性/方法的效率,就有了给Function原型拓展method的方法了。。。
MyClass.method("getAnother", function(){});
而method中返回this,是为了方便链式语法的使用。。。
为了在多次给Function添加的属性的时候,偷懒用。
从上面的例子,我想你能看出来 Function.prototype.method 其实是扩展了 Function添加原型(实例)方法。