JavaScriptコール()、apply ()、bind ()


あなたがJavaScriptのインタビューの質問をgoogledした場合は、おそらくJavaScriptの呼び出し、適用、およびバインド機能の違いを議論するためにIntervieweeを求める質問に遭遇した.
一見して、これらは非常に混乱しているようですが、実際にそれらを勉強する時間がかかる場合、彼らはかなり理解しやすいです.
コール、適用、バインドの違いを議論する前に、JavaScriptと呼ばれるコースにShoutoutを与えたいと思います.ここのレッスンは本当に私のJavaScriptの知識を高めるのに役立ちました.
呼び出し、適用、およびバインドはすべてこの'キーワード'を中心にします.あとでJavaScriptでこの'キーワード'をカバーするより詳細な記事を書きますが、' this 'は' this 'キーワードを持つ関数を呼び出すオブジェクトを指します.
次のようなコードを持っているかもしれません.
let person = {
  age: 30,
  name: "Josh"
}

person.greet = function() {
  console.log(`My name is ${this.name}.`)

}


person.greet();
これは出力されます.
しかし、あなたがその機能を呼ぶことを望むならば、それのために何か他のものを使用したいですか?
それは、呼び出しと適用が入るところです.
コードを少し変更して、別の人を加えましょう.
let josh = {
  age: 30,
  name: "Josh"
}

josh.greet = function() {
  console.log(`My name is ${this.name}.`)
}

let frank = {
  age: 25,
  name: "Frank"
}
JohshからGreet関数を「ハイジャック」することができます.
josh.greet.call(frank);

josh.greet.apply(frank);
これらのログの両方“私の名前はフランクです.”
バインドは非常に似ていますが、関数を格納してから後で呼び出します.
let frankGreeting = josh.greet.bind(frank);

frankGreeting();
我々は必要に応じてこれらに引数を渡すことができます.主な機能を次のように修正しましょう.
josh.greet = function(lastName) {
   console.log(`My name is ${this.name} ${lastName}.`);
}
このようなコール関数を使うことができます.
josh.greet.call(frank, "smith");
または、適用を使いたい場合、引数の配列を使用します.
josh.greet.apply(frank, ["smith"]);
とバインド同様に動作します.
let frankGreeting = josh.greet.bind(frank);

frankGreeting("Smith");
そして、それはどのように呼び出し、適用、およびJavaScriptで作業をバインド!私は、あなたがそれのようにそれを壊すとき、あなたの頭を包むのがかなり簡単であると思います.
Web開発の詳細については、確認してください.