如何在JavaScript中创建一个函数列表,像这样一起执行操作?
对不起,我不知道它叫什么,但是当你选择的东西比你添加类的时候更像Jquery,而且你可以在同一时间做其他事情!
例如:
list.getAll().count()
或者
list.getAll().removeLast().dosomthingElse().count()
我尝试了很多方法,但不幸的是,除非我扩展不是我想要的功能类,否则我无法使其工作!
答案 0 :(得分:5)
这就是所谓的链接方法。您只需从方法中返回对象引用(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
对象,其中包含列表中的所有项目并返回该对象。)
答案 1 :(得分:2)
您需要定义一个方法。这是附加到对象的函数。
您可以这样定义:
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
)。