Javascript 最具性能的绑定模式";“中学”;性质
假设我们有一个老式JavaScript:Javascript 最具性能的绑定模式";“中学”;性质,javascript,node.js,Javascript,Node.js,假设我们有一个老式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 }
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
中的“this”值绑定到obj,最有效的模式是什么
有时我们可以直接引用obj,而不是使用此
。但是,如果obj是另一个对象的原型,那么直接引用obj将不会产生正确的结果。我需要在这里使用这个值(我想)。
换句话说,这是行不通的:
obj.foo.x = function(){
}.bind(obj);
obj.bar.y = function(){
}.bind(obj);
用这个就可以了
let obj = {
foo: function(){
// this === obj
},
x: function(){
// this === obj
},
bar: function(){
// this === obj
return this;
}
}
然后可以调用
obj.bar().x()
@str我如何使用这里可能的副本我链接了文档,我建议阅读它。我已经使用JS大约3年了,我知道Function.prototype.bind:)我不确定如何在这里使用它。如果这很明显,那么请添加一个答案,我将向上投票。我不希望x是obj的直接属性,我需要x是obj的“次要”属性。