源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Javascript中的方法链(Method Chaining)介绍

  • 时间: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'),而这种用法的结果可能会变成这样子。
[u]复制代码[/u] 代码如下:
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
这是网上的一个例子,然而也是我上一次写链式调用的作法。看上去弱爆了。
[u]复制代码[/u] 代码如下:
var func = (function() {     return{         add: function () {             console.log('1');             return{                 result: function () {                     console.log('2');                 }             }         }     } })(); func.add().result();
实际上应该在每个function都要有个return this,于是就有了:
[u]复制代码[/u] 代码如下:
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();
当然我们也可以将最后的两句
[u]复制代码[/u] 代码如下:
var func = new Func(); func.add().result();
变成
[u]复制代码[/u] 代码如下:
new Func().add().result();
[b]其他[/b] 最后作为一个迷惑的地方的小比较: [b]Method Chaining VS prototype Chaining[/b] 原型链与方法链在某些方面上是差不多的,不同的地方或许在于 1.原型链是需要用原型 2.方法链则是用方法
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部