中級 › メソッドを変数に代入・受け渡しするとthisが失われる › パターン4
メソッドを変数に代入・受け渡しするとthisが失われる
オブジェクトのメソッドを変数に代入したり、別の関数に渡して呼び出したりすると、呼び出し時にレシーバーの情報が失われ、thisがオブジェクトを指さなくなります。
1 const timer = { seconds: 0, tick: function() { this.seconds++; return this.seconds; } }; 2 const tick = timer.tick.bind(_____); ^ 3 console.log(tick());
出力: NaN期待: 1 (エラーにはなりません)
空欄を埋めて実行を通す
bind()に何も渡さないと、切り離されたtickを呼んでもthisはtimerを指しません。
次の問題