我将这段代码运行到控制台并尝试调用:
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/