0
私は矢印関数についていくつかのトピックを読んだが、以下のコードではわたしを混乱させるだけだ。ES6 arrow関数とこのコンテキスト
var bunny = {
name: 'Usagi',
tasks: ['transform', 'eat cake', 'blow kisses'],
first :() => {
console.log(this) //does not refer to bunny
},
second: function(){
console.log(this) //refers to bunny
},
third() {
this.tasks.forEach((task) => {
console.log(this); //refers to bunny
});
}
};
bunny.first();
bunny.second();
bunny.third();
は、誰もが最初のものはありませんが、これは現在のオブジェクトを参照する第三の機能インナーの機能を来る方法を教えてもらえます。 arrow機能を使用していないときは、定義されている現在のスコープを参照していますか?
arrow関数は、それ自身のレキシカルスコープで 'this 'を定義しないので、それ自身の中で定義されていない通常の変数を得るのと同じように、そのスコープから取得します。 –
オブジェクトリテラルのプロパティ式内の現在の 'this'コンテキストは、構築されたオブジェクトではありません。 – Bergi
参照[矢印関数と関数宣言/式:それらは同等か交換可能ですか?](http://stackoverflow.com/q/34361379/218196) –