有没有办法访问 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);
有没有办法访问 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);
我不确定你要做什么,但如果你问如何访问this
通过 传递的值.call
,答案是:你不能。
由于箭头函数没有自己的this
,因此没有任何东西.call
可以将值设置为。如果您希望函数具有自己的this
值,请不要使用箭头函数。
正如 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