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 が気付いたように、アロー関数はこの値を所有していないため.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