Open1
jsド忘れメモ
call()
Functionオブジェクトのメソッド。this を指定して関数を呼びだせる。
call(thisArg, arg1, arg2, /* …, */ argN)
const obj = { name: "john" };
function getName() {
return this.name;
}
console.log(getName.call(obj)); // john
thisについて
通常の関数呼びだし
strictモードで関数呼び出しをすると this は undefined になる。非strictモードでは、グローバルオブジェクトとなる。
呼び出し式: 関数やメソッドを呼び出すための構文。( e.g. f(0))
-
f(0):fは関数式、0は引数式。 -
呼び出し式の評価
- 関数式の評価
- 引数式の評価
- 引数の値のリストが生成される
メソッド呼び出し
メソッド呼び出しでは、呼び出し元のオブジェクトが this になる。
メソッド呼び出し: プロパティアクセス式による関数の呼び出し。
プロパティアクセス式:
式.識別子
式[式]
const obj = {
x: 10,
f: function() {
console.log(this);
}
}
obj.f(); // {x: 10, f: f()}