大多数高性能模式绑定" secondary"性能

时间:2017-06-22 07:41:42

标签: 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
}

使用最合适的模式是什么,绑定"这个" obj.foo.xobj.bar.y到obj的价值

有时我们可以直接引用obj而不是this。但是,如果obj是另一个对象的原型,那么直接引用obj将不会产生正确的结果。我需要在这里使用this值(我认为)。

换句话说,这不起作用:

obj.foo.x = function(){

}.bind(obj);

obj.bar.y = function(){

}.bind(obj);

1 个答案:

答案 0 :(得分:0)

只需使用return this;

    let obj = {
  foo: function(){
      // this === obj
  },
  x: function(){
      // this === obj
  },
  bar: function(){
       // this === obj
    return this;
  }
}

比你可以致电obj.bar().x();