有没有办法访问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);
答案 0 :(得分:1)
我不确定您要做什么,但如果您询问如何访问通过this
传递的.call
值,答案是:您可以&# 39;吨
由于箭头功能没有自己的this
,因此.call
无法设置值。如果您希望函数具有自己的this
值,请不要使用箭头函数。
答案 1 :(得分:0)
正如Felix所注意到的,箭头函数没有自己的值,因此.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