ホームページ > 記事 > ウェブフロントエンド > jsのcall、apply、bindの違い
JavaScript では、call、apply、bind はいずれも関数実行時のコンテキストを変更するために存在します、つまり関数本体内で this のポインタを変更するためのものです。
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 サイトの他の関連記事を参照してください。