ホームページ  >  記事  >  ウェブフロントエンド  >  jsのcall、apply、bindの違い

jsのcall、apply、bindの違い

angryTom
angryTomオリジナル
2020-02-12 16:02:264472ブラウズ

JavaScript では、call、apply、bind はいずれも関数実行時のコンテキストを変更するために存在します、つまり関数本体内で this のポインタを変更するためのものです。

jsのcall、apply、bindの違い

js における call、apply、bind の違い

call、apply、bind の違いは、次に例を見てみましょう。

var obj = {
    x: 81,
};
 
var foo = {
    getX: function() {
        return this.x;
    }
}
 
console.log(foo.getX.bind(obj)());  //81
console.log(foo.getX.call(obj));    //81
console.log(foo.getX.apply(obj));   //81

3 つの出力はすべて 81 ですが、bind() メソッドを使用した出力に注目してください。その後に 括弧 のペアがあります。

つまり、コンテキスト環境を変更してすぐに実行するのではなく、コールバック実行したい場合には、bind() メソッドを使用するという違いがあります。適用/呼び出しにより関数がすぐに実行されます。

要約:

apply、call、bind はすべて、関数の this オブジェクトのポインティングを変更するために使用されます。 call の最初のパラメータは、bind が指すオブジェクト、つまり指定するコンテキストです。

apply、call、bind はすべて、後続のパラメータを使用してパラメータを渡すことができます。

バインドは、後で簡単に呼び出せるように対応する関数を返します。

適用してすぐに呼び出します。

この記事は

js チュートリアル

列からのものです。ぜひ学習してください。

以上がjsのcall、apply、bindの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。