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