0

有没有办法访问 ES6 箭头函数的 call() 方法的第一个参数?

var obj = {
  getFn: function() { return () => {
      //how to access bar here
      return this.what;
    }
  },
  any: 1
}


var foo = obj.getFn();
var bar = {
  any: 2
};

foo.call(bar);
4

2 回答 2

1

我不确定你要做什么,但如果你问如何访问this通过 传递的值.call,答案是:你不能

由于箭头函数没有自己的this,因此没有任何东西.call可以将值设置为。如果您希望函数具有自己的this值,请不要使用箭头函数。

于 2015-07-13T12:31:54.380 回答
0

正如 Felix 所注意到的,箭头函数没有自己的 this 值,所以.call.apply方法不能改变this箭头函数的值。

如果您想访问bar箭头函数的内部,可以通过参数传递它。

var obj = {
  getFn: function() { 
    return (bar) => {
      console.log(bar);
      return this.what;
    }
  },
  any: 1
};

var foo = obj.getFn();
var bar = {
  any: 2
};

foo(bar); // prints bar into console
于 2015-07-14T08:34:31.557 回答