如何在 JavaScript 中创建一个函数列表,这些函数可以像这样一起执行操作?
对不起,我不知道它叫什么,但是当你选择一些东西而不是向它添加类时,我不知道它叫什么,而且你可以同时做其他事情!
例如:
list.getAll().count()
或者
list.getAll().removeLast().dosomthingElse().count()
我尝试了很多方法,但不幸的是,除非我扩展我不想要的函数类,否则我无法让它工作!
如何在 JavaScript 中创建一个函数列表,这些函数可以像这样一起执行操作?
对不起,我不知道它叫什么,但是当你选择一些东西而不是向它添加类时,我不知道它叫什么,而且你可以同时做其他事情!
例如:
list.getAll().count()
或者
list.getAll().removeLast().dosomthingElse().count()
我尝试了很多方法,但不幸的是,除非我扩展我不想要的函数类,否则我无法让它工作!
这就是所谓的链接方法。您只需this
从方法中返回对象引用 ( ):
List.prototype.getAll = function() {
// do something
return this;
}
或者,如果该方法产生一个新结果,则创建一个相同类型的对象并返回:
List.prototype.removeLast = function() {
var items = this.items.slice(0, items.length - 1);
return new List(items);
}
(您也可以创建一个不同类型的对象。例如,一个toCollection
方法可以创建一个Collection
包含列表中所有项目的新对象并将其返回。)
你需要定义一个方法。那是附加到对象的函数。
你这样定义它:
window.myMethod = function(){
alert(this) ;
}
对象不必是window
. 要将另一种方法链接到最后,请使用return this
.
window.myMethod = function(){
alert(this) ;
return this ;
}
window.myOtherMethod = function(){
console.log(this) ;
return this ;
}
window.myMethod().myOtherMethod() ;
现在您可以使用方法链,因为第二种方法从第一种方法接收原始对象(window
在本例中)。