Js のこれは、apply().call(),bind() の問題を示しています。

一个新手
リリース: 2017-10-23 10:02:37
オリジナル
1475 人が閲覧しました

メモをとる理由: JavaScript の人気の傾向は止められず、派生した AngularJs、Node.js、および BootStrmp は、中小企業の IT 部門のバックエンド開発においてその利点をますます失いつつあります。 IT は人生を変える .Net プログラマーとして 3 年間活動してきましたが、保守的であることは実際には恐怖であり、人生には情熱とモチベーションが必要であると深く感じています。

本文:

1. apply().call() と binding() は何をしますか?

これら 3 つはすべて、メソッド内の this のポイントを変更します

2. これは何ですか?

これは、setTimeout メソッドの this など、現在呼び出しているメソッドの実行オブジェクトを指します


1 setTimeout(function(){
2                 console.log(this)
3            },1000)
ログイン後にコピー

出力結果:


Window {external: Object, chrome: Object, document: document, Alax: Object, a2: Object…}
ログイン後にコピー

Window.setTimeout が Window オブジェクトのメソッドである場合、setTimeout が完全に呼び出されるため。

別のオブジェクトを定義する


var Alax={
         name:'Alax',
         age:27,
         fuc:function(){            
         return this.age;
         }
        }
ログイン後にコピー

論理的に言えば、console.log(Alax.fun)を使用すると27が出力されるはずですが、実際の状況は未定義です。 Alax オブジェクトの外部で呼び出された場合、実際のオブジェクトは Window であり、Window には age 属性が含まれていないため、このポインターは変更されており、考えられるものを比較するには概念が完了するまで待つ必要があることを意味します

3. call、apple、bind の違い

1. パラメータの比較

call のパラメータ形式は (thisvalue, arg1) です

g1、ar2...)

この値以下のパラメータは、渡される this ポインタを参照します。以下のパラメータは、メソッドのパラメータに対応します。渡された場合は、引数で取得できます

2. 戻り値の比較

すべてのパラメータを引数に渡し、呼び出し結果を直接返す

バインドとは、メソッドの実行後に受信値を返し、新しい

関数を返すことを指します。関数は () で呼び出す必要があります

要約: 上記。呼び出しメソッドは

console.log((Alax.fuc).call(Alax))
console.log((Alax.fuc).apply(Alax))
console.log((Alax.fuc).bind(Alax)())
ログイン後にコピー

Attach パラメータ call

Alax={
         name:'Alax',
         age:27,
         fuc:function(num){               
         this.age+=num               
         return this.age;
         }
    }
 console.log((Alax.fuc).call(Alax,1))
 console.log((Alax.fuc).apply(Alax,[1]))
 console.log((Alax.fuc).bind(Alax)(1))
ログイン後にコピー
にすることができます

以上がJs のこれは、apply().call(),bind() の問題を示しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート