如何在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
對象,並返回。)
優秀,謝謝Guffa – Abod
您需要定義一個方法。這是附加到對象的功能。
你定義它是這樣的:
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
)原始對象。
非常感謝ColBeseder – Abod
你想知道'如何在JavaScript中鏈接方法'。 –