JSのアロー関数のthisは、関数が定義された際のthisを参照するということですが、それで言うと以下のコードのobj.b()は、obj.c()と同じ出力になるのではないでしょうか?
bというメソッドが定義されているのは、グローバルスコープではなく、objオブジェクトのブロックスコープなので、objオブジェクトを参照するのではないかと考えています。
また、以下のコードはMDNのページから引用していますが、「新しいスコープを作成しない」とあるのはどういう意味でしょうか?
MDNのページ: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions
'use strict'; var obj = { // 新しいスコープを作成しない i: 10, b: () => console.log(this.i, this), c: function() { console.log(this.i, this); } } obj.b(); // prints undefined, Window {...} (or the global object) obj.c(); // prints 10, Object {...}
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/22 09:07
2021/11/22 09:48