javascript - 了解 Javascript 链接模式

标签 javascript method-chaining

我将这段代码运行到控制台并尝试调用:

obj.foo().bar().coo().moo();

这是我之前的代码:

    function bar() {
  this.coo = function () {
    this.moo = function () {
      console.log("yay");
    }
  }
}

obj = {
  foo : function () {this.bar = bar}
};      

返回的错误是“TypeError:无法读取未定义的属性‘bar’”。虽然,当我写道:

obj.foo();
obj.bar();
obj.coo();
obj.moo();

它运行良好。为什么使用方法链的第一次调用不起作用,就像我分别调用每个方法一样。

最佳答案

你不返回任何东西。您需要在每个函数的末尾添加 return this 以便链接一个对象。

关于javascript - 了解 Javascript 链接模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26443673/

相关文章:

c# - 将 C# 链接起来看起来像 jQuery 是一个好主意吗?

c++ - 序列点和方法链

javascript - HTML/CSS/JavaScript 培训视频

javascript - 根据搜索文本动态刷新内容

javascript - 如何将子级和孙级 json 数据附加到 TreeView 结构中

ruby - 重载 Ruby 的 [...] 数组创建速记

java - 是否可以使用 Comparator.comparingInt 链按两个字段以相反的自然顺序对对象进行排序

terminology - 流畅的接口(interface)和方法链之间有什么区别?

javascript - 三人组 : Rotate sphere(globe) to another point(city) on the sphere itself

javascript - 根据其他 div 高度设置动画 div 高度