中級 › メソッドを変数に代入・受け渡しするとthisが失われる › パターン5
メソッドを変数に代入・受け渡しするとthisが失われる
オブジェクトのメソッドを変数に代入したり、別の関数に渡して呼び出したりすると、呼び出し時にレシーバーの情報が失われ、thisがオブジェクトを指さなくなります。
1 const wallet = { balance: 100, show() { return "$" + this.balance; } }; 2 function callLater(fn) { return fn(); } 3 console.log(callLater(________________________)); ^
出力: $undefined期待: $100 (エラーにはなりません)
空欄を埋めて実行を通す
wallet.showを関数として渡すと、callLater内で呼ばれた時点でレシーバーの情報が失われます。
次の問題