我是 JS 的新手,但我已经对该主题进行了研究,但没有找到详尽的答案。
我正在为一个项目使用 Angular JS,并且我有一个公开一些功能的服务:
var app = angular.module('myApp', [])
app.service('mySrv', function() {
this.myFoo = function() {
var anObject = {}
//some code on the object...
return anObject
}
this.myGoo = function() { // function(object) maybe?
//some code on an object again
return aNewObject
}
}
然后在我的控制器中,我想做类似 JQuery 的事情,将 myFoo 的输出链接为 myGoo 的输入
$scope.myObj = mySrv.myFoo(['some','params']).myGoo('another_one')
我发现我可以使用原型属性来添加可链接性,如此处所述如何在 JavaScript 中制作可链接功能? 但是同样的答案说它不应该在对象上完成,这将是我的情况......
最后但同样重要的是,还有其他方法JavaScript Object Method Chaining: 有用吗?
坦率地说,我不明白……
有人可以清除我脑海中的所有迷雾吗?
编辑: 使用和混合来自@plalx 和@Connor 的优秀示例,我已经设法让这个片段工作,并且如您所见,缺少@plalx 示例的“可链接部分”。
那部分到底是做什么的?
var o = {
setTest: function (test) {
this.test = test;
return this
},
getTest: function () {
this.test = this.test.toUpperCase()
return this
},
splitMe: function() {
return this.test.split('')
}
};
console.log( o.setTest('hello').getTest().splitMe() )