JavaScriptのアロー関数におけるthisは、通常の関数におけるthisを違うものを指すことがあります。本記事では、便利なアロー関数におけるthisの使い方を見てみましょう。
アロー関数とは?
そもそもアロー関数とはなんでしょうか。アロー関数はJavaScriptで関数を簡潔に書くための記述方法です。(詳しくはこちら)通常の関数と比べて文法が短く、特にthisの振る舞いが大きく異なります。
通常の関数におけるthisの振る舞い
JavaScriptでは、thisの値は関数がどのように呼び出されるかによって変わります。これが時として混乱を招くことがあります。例えば、オブジェクトのメソッド内でタイマーを設定する場合、以下のような問題が生じることがあります。
const myObject = {
value: 42,
showValue: function() {
setTimeout(function() {
console.log(this.value); // ここで`this`は`myObject`ではなく、`window`を指すため、undefinedになる
}, 1000);
}
};
myObject.showValue();ここでは、this.valueで42という値を出力しようとしていますが、thisはwindowを指すため、this.valueも値が定義されていないことになってしまいます。




