this
と矢印関数の関係を理解していると思っていましたが、以下のスニペットは私の理解に疑問を投げかけています。オブジェクト内のこの内側矢印関数の値
let person = {
name: 'Jim',
sayName:() => {
console.log(this.name);
}
};
person.sayName();
私は矢印関数が囲むコンテキストの値this
を取得することを理解しています。私はthis
がオブジェクトになると予想していましたが、代わりにWindow
です。
なぜこのような場合に誰かが私に理解を助けることができますか?
名前の値を取得する場合は、 'this'は未定義です**通常の関数構文**を使用するか**オブジェクト名を参照して' person.name'なので –
'Object'リテラルdoesn囲むコンテキストを作成しません。通常の関数の本体だけが行います。 – ftor