this
this ?関数の実行時に呼び出しメソッドによって決定される特殊なオブジェクト. 関数を実行するときに決定されるので、これはコードの内容に依存します. どうやって実行しますか?
呼び出し関数(ほとんど使わない) メソッド呼び出し時 の新しいキーワード呼び出しジェネレータを使用する場合 .コール、Applyコール この二つのやり方によって、この点が決まった.
メソッドを呼び出すときのこの値を運転するとき、温度点左側のオブジェクト newキーを使用してジェネレータを呼び出す場合新しく作成されたインスタンスオブジェクト コール、apply呼び出し時が最初のパラメータとして渡されるオブジェクト
👀 注意事項
矢印関数でthisを使用しないでください.
矢印関数はこの点を決定しません!
これを使用するには、通常の関数を使用します.
.call .apply .bind ?関数を呼び出す方法にかかわらず、指定できます. コールメソッドは、すべての関数で使用でき、特定の値として指定できます. の最初のパラメータは無条件にこの値です. の2番目のパラメータから、通常の関数のようにパラメータを直接受け入れます. 適用方法関数パラメータを処理する方法に加えて、callと一致する. の最初のパラメータは無条件にこの値です. の2番目のパラメータから、パラメータを配列として受け入れます. 呼び出しと適用例関数の値は、永続的に変更できます. ビットメソッドのように、最初のパラメータはこの値でなければなりません. を直ちに実行するのではなく、バインド関数を返します.
呼び出し
メソッドを呼び出すときのこの値
矢印関数でthisを使用しないでください.
矢印関数はこの点を決定しません!
これを使用するには、通常の関数を使用します.
.call .apply .bind ?
const nike = {
name : "Nike"
}
const adidas = {
name : "Adidas"
}
function showBrand(){
console.log(this.name);
}
function update(price,category){
this.price = price;
this.category = category;
update.call(nike, 20000, "Shoes"); // call은 2번째 인자부터 직접 받는다.
console.log(nike); // {name : "Nike", price : 20000, category : "Shoes"}
update.apply(adidas,[30000, "T-shirt"]); // apply는 2번째 인자부터 배열로 받는다.
console.log(adidas); // {name : "Adidas", price : 30000, category : "T-shirt"}
bindメソッドconst nike = {
name : "Nike"
}
const adidas = {
name : "Adidas"
}
function showBrand(){
console.log(this.name);
}
function update(price,category){
this.price = price;
this.category = category;
updateNike = update.bind(nike); // 이 함수는 항상 nike를 this로 받는다.
updateNike(40000, 'Shoes'); // {name : "Nike", price : 40000, category : "Shoes"}
Reference
この問題について(this), 我々は、より多くの情報をここで見つけました https://velog.io/@altanis7/thisテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol