1
A
回答
1
只需從函數中返回適當的東西即可。基本的經驗法則是採取任何不會返回任何東西的方法,而是使其返回this
。
function Constructor(){};
Constructor.prototype = {
foo: function(){
console.log('foo');
return this;
},
bar: function(x){
console.log('bar', x);
return this;
}
}
var obj = new Constructor();
obj.foo().bar(17).bar(42).foo();
5
您所描述的技術被稱爲fluent interface,它涉及所有可鏈接的功能返回相同類型的對象。該對象的原型包含函數定義。
鏈接的文章包含各種語言的示例代碼,包括javascript。
1
在該特定情況下,每種方法返回this
。所以:
// ... this has to be the most impractical class I've ever written, but it is a
// great illustration of the point.
var returner = new function() {
this.returnThis = function(){
console.log("returning");
return this
}
}
var ret2 = returner.returnThis().returnThis().
returnThis().returnThis() // logs "returning" four times.
console.log(ret2 == returner) // true
1
鏈接例如:
var avatar = function() {
this.turnLeft = function {
// some logic here
return this;
}
this.turnRight = function {
// some logic here
return this;
}
this.pickUpItem = function {
// some logic here
return this;
}
};
var frodo = new avatar();
frodo.turnLeft().turnRight().pickUpItem();
相關問題
- 1. 添加方法的功能
- 2. 如何向gmaps4rails添加addPolylines功能?
- 3. 向URL添加功能
- 4. 向ArrayBlockingQueue添加功能
- 5. 向類添加新功能
- 6. 向Rails添加功能
- 7. 向mapbox.js添加功能
- 8. 添加功能創建方法
- 9. 向SelectionListener添加雙向功能
- 10. 如何向Dojo添加新方法?
- 11. 如何向Array#大小添加方法?
- 12. 如何向Iterator添加新方法?
- 13. 如何向Ext Core添加新方法?
- 14. 如何添加功能
- 15. 如何在方法調用中添加常用功能?
- 16. 如何正確覆蓋虛擬方法來添加功能?
- 17. 如何在CreateUser方法中添加更多功能ASP.Net MVC
- 18. Swift:如何添加功能到初始化方法
- 19. CXF - 無法添加功能
- 20. 我該如何添加成功功能?
- 21. Rails:爲rails方法添加功能的正確方法
- 22. 向data.table添加新方法
- 23. 向metaclass添加方法
- 24. 向庫中添加方法
- 25. 如何添加樣式附加功能
- 26. 向SVN服務器添加webhook功能
- 27. 向Kolor Panotour添加查找Pano功能
- 28. 向接口添加新功能
- 29. 向Elgg River添加一個新功能
- 30. 向家長添加javascript功能
這正是我想要的。謝謝!! – 0x499602D2