假设我们有这个老派的JavaScript:
let obj = {
foo: function(){
// this === obj
},
bar: function(){
// this === obj
}
}
但是如果我们想要将一些属性附加到foo和bar,就像这样:
obj.foo.x = function(){
// this !== obj
}
obj.bar.y = function(){
// this !== obj
}
使用最合适的模式是什么,绑定"这个" obj.foo.x
和obj.bar.y
到obj的价值
有时我们可以直接引用obj而不是this
。但是,如果obj是另一个对象的原型,那么直接引用obj将不会产生正确的结果。我需要在这里使用this
值(我认为)。
换句话说,这不起作用:
obj.foo.x = function(){
}.bind(obj);
obj.bar.y = function(){
}.bind(obj);
答案 0 :(得分:0)
只需使用return this;
let obj = {
foo: function(){
// this === obj
},
x: function(){
// this === obj
},
bar: function(){
// this === obj
return this;
}
}
比你可以致电obj.bar().x();