ES6が私たちに与える=>機能を使ってコンテキストを継承して実験したところ、このコンテキストを決して変更できないことに気付きました。 例:=>演算子と関数キーワードを使用せずにこのスコープとは異なるES6 =>関数演算子
var otherContext = {
a: 2
};
function foo() {
this.a = 1;
this.bar =() => this.a;
}
var instance = new foo;
instance.bar(); // returns 1
instance.bar.bind(otherContext)(); // returns 1
:
したがってfunction foo() {
this.a = 1;
this.bar = function() {
return this.a;
}
}
var instance = new foo;
instance.bar(); // returns 1
instance.bar.bind(otherContext)(); // returns 2
、我々は外部の呼び出しから機能を受け取るか、単に変数で関数を持っている場合、どのようにすることができます我々はそれを別のものに束縛することができるのか、それともどこかからそれを継承するのかどうかを確かめます。
JavaScriptは何も教えてくれませんが、非常に微妙で難しいバグのために落ちる危険性があります。
私は本当にそこに質問を見ることができません、あなたはこの動作について理解していないものがありますか? –
ええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ投稿者 明確にするために疑問符を追加しました –
外部ソースから太い矢印関数を受信することは珍しいことです。そうであれば、他のコンテキストでも呼び出し可能になるようには設計されていません。 –