- 时间:2020-10-05 05:32 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:Javascript中的方法链(Method Chaining)介绍
在寻找如何设计一个Javascript API的时候,发现了Method Chaining这个东西,方法链,看上去似乎很强大,也挺有意思的,而这个东西也是过去我们经常看到的。。
[b]Javascript Method Chaining[/b]
在维基百科上有这样的解释:
[url=http://www.1sucai.cn/article/62256.htm]Javascript 高阶函数 [/url]的时候,说到的print('Hello')('World'),而这种用法的结果可能会变成这样子。
function f(i){
return function(e){
i+=e;
return function(e){
i+=e;
return function(e){
alert(i+e);
};
};
};
};
f(1)(2)(3)(4); //10
这是网上的一个例子,然而也是我上一次写链式调用的作法。看上去弱爆了。
var func = (function() {
return{
add: function () {
console.log('1');
return{
result: function () {
console.log('2');
}
}
}
}
})();
func.add().result();
实际上应该在每个function都要有个return this,于是就有了:
Func = (function() {
this.add = function(){
console.log('1');
return this;
};
this.result = function(){
console.log('2');
return this;
};
return this;
});
var func = new Func();
func.add().result();
当然我们也可以将最后的两句
var func = new Func();
func.add().result();
变成
new Func().add().result();
[b]其他[/b]
最后作为一个迷惑的地方的小比较:
[b]Method Chaining VS prototype Chaining[/b]
原型链与方法链在某些方面上是差不多的,不同的地方或许在于
1.原型链是需要用原型
2.方法链则是用方法