Open1

jsド忘れメモ

popysonpopyson

call()

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/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は引数式。

  • 呼び出し式の評価

  1. 関数式の評価
  2. 引数式の評価
  3. 引数の値のリストが生成される

メソッド呼び出し

メソッド呼び出しでは、呼び出し元のオブジェクトが this になる。

メソッド呼び出し: プロパティアクセス式による関数の呼び出し。

プロパティアクセス式:

式.識別子
式[式]
const obj = {
  x: 10,
  f: function() {
    console.log(this);
  }
}

obj.f(); // {x: 10, f: f()}