コールを使用するときは、JavaScriptを適用します.


この記事では、JavaScriptのCall、Application、Bindの例を例にとります.
まず、コールを理解し、適用し、バインドするにはthis JavaScriptのキーワードと使い方.詳しくは詳しく見ていきましょう.

JavaScriptでこれは何ですか?
JavaScriptthis 基本的にはそれが属する物を指す.
それでは別のケースを見てみましょう.

1 .グローバルスコープ
我々が使うならばthis グローバルにキーワードは、ウィンドウのオブジェクトを参照します.Windowオブジェクトはブラウザのオープンウィンドウに過ぎません.
それについて理解するための例をいくつか見ていきましょう.
var x = this;
console.log(x) // Window Object
this.chair="red"
console.log(window.chair) //"red"
上の例ではthis グローバルスコープで使用すると、ウィンドウオブジェクトが参照されます.

2 .オブジェクトメソッドの内部
オブジェクトメソッドでは、メソッドの“所有者”を参照します.
それでは、それを理解する例を見てみましょう.
let myRoom={
chair:"red chair",
cleanChair(){
chair="blue chair"
console.log(this.chair)
}
}
myRoom.cleanChair();//"red chair"
上の例でははっきりと見ることができますthis メソッドの内部では、常にメソッドの所有者を参照します.
Though cleanChair() メソッドはchair それ自身の、それはそれを参照しませんが、それがそうである方法の所有者を参照しますmyRoom そして、それは“レッドチェア”を返す理由です.

3 .内部関数(デフォルト)
JavaScript関数では、関数の所有者はthis . したがって、関数がデフォルトモードで使用される場合、これはグローバルオブジェクト[オブジェクトウィンドウ]を参照します
それを理解する例を見てみましょう.
this.chair="red"
 let room = function(){
 console.log(this.chair) //red
 }
 room();
上の例ではthis デフォルトモードで関数を使用する場合は、グローバルオブジェクトを参照します.

4 .これは関数( strict )
JavaScriptの厳しいモードでは、this . したがって、関数で使用する場合、strict modeでthis が定義されていない.
それについて理解する例を調べましょう.
'use strict'
this.chair="red"
let room = function(){
console.log(this.chair) 
}
room();//cannot read property chair of undefined
上の例ではthis strict modeの関数の内部でエラーが発生しますundefined 関数は参照してどれを参照してすぐに値を呼び出すかわからないのでthis .
このような状況では、コール、適用、バインドを使用して適切なコンテキストを与えるthiscall ()/apply ()を使用してすぐに関数を呼び出します.bind ()は、後に実行されると、元の関数を呼び出すための正しいコンテキスト("this ")を持つバインド関数を返します.so bind ()は、関数が有用なときに特定のイベントで後で呼び出される必要がある場合に使用することができます.
それらの各々が例で問題を解決する方法を見ましょう.
call ()
call ()メソッドは、所有者オブジェクトを引数としてメソッドを呼び出す(コールするために使用される)定義済みのJavaScriptメソッドです.
 'use strict'
this.chair="red"
let room = function(a,b){
console.log(`${this.chair} ${a} ${b}`) 
}
room.call(this,'blue','green')//"red blue green"
上の例ではcall() メソッドの呼び出しthis そして、私たちが以前に見た問題を解決することによって、カンマを使って引数を一つずつ渡すことができます.
適用
apply ()メソッドはcall ()メソッドと似ています.唯一の違いは、apply ()メソッドが配列として引数をとることです.
それについてもっと理解する例を見てみましょう.
 'use strict'
this.chair="red"
let room = function(a,b){
console.log(`${this.chair} ${a} ${b}`) 
}
room.apply(this,['blue','green'])//"red blue green"
上の例ではapply() メソッドの呼び出しthis また、引数を引数としてコンマを使用して配列を渡しますthis 関数の内部.
バインド
Bindメソッドは新しい関数を返します.これにより、この引数と任意の数の引数を渡すことができます.この関数を後でイベントのような特定のコンテキストで呼び出すようにするときに使用します.
詳細についての詳細を理解する例を見てみましょう.
this.chair="red"
let room = function(a,b){
console.log(`${this.chair} ${a} ${b}`) 
}

const bindRoom=room.bind(this)('blue','green') //"red blue green"
bind ()のコード例ではbindRoom 関数は、後で呼び出される.
この記事が好きなら❤ 🦄 そして後で保存します.