メソッドとしてのバインド関数
重要度: 5
出力がどうなるでしょうか?
function f() {
alert( this ); // ?
}
let user = {
g: f.bind(null)
};
user.g();
正解: null
.
function f() {
alert( this ); // null
}
let user = {
g: f.bind(null)
};
user.g();
バインドされた関数のコンテキストは厳密に固定されています。さらに変更することはできません。
そのため、user.g()
を実行する場合でも、元々の関数はthis=null
で呼び出されます。