ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptでバインドとはどういう意味ですか

JavaScriptでバインドとはどういう意味ですか

藏色散人
藏色散人オリジナル
2021-04-25 10:49:285780ブラウズ

JavaScript のbind は、EcmaScript5 の新しいメソッドです。bind() メソッドは、新しい関数の作成に使用されます。呼び出されるときは、this キーワードを指定された値に設定します。新しい関数を呼び出すときは、指定された値を指定します。規定の前の引数のシーケンス。

JavaScriptでバインドとはどういう意味ですか

この記事の動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

js でのバインドについての簡単な話

この記事では主に js でのバインド アプリケーションについて紹介しており、サンプル コードを通じて詳しく紹介しています。 forEveryone's learning または The work has a specific Reference and learning value. Friends who need it can follow the editor to learn together.

バインドメソッドといえば、皆さんもコールメソッドを思い浮かべるのではないでしょうかおよび apply メソッド。これらは両方とも Function オブジェクト内にあります。構築されたメソッドの最初のパラメータは、呼び出し側メソッドで this のポインタを変更するために使用されます。 bind は後で呼び出せるように新しい関数を返すことに注意してください。apply と call は元の関数をすぐに呼び出します。今回はバインドメソッドの理解と使い方を中心に説明します。

bind メソッドは EcmaScript5 の新しいメソッドです。このメソッドは mdn で次のように導入されます:

bind() メソッドは新しい関数 (バインディング関数と呼ばれます) を作成します。呼び出されるときは、 this キーワードを指定された値に設定し、新しい関数を呼び出すときは、指定された一連の引数を指定する前に指定します。

構文:

fun.bind(thisArg[, arg1[, arg2[, …]]])

パラメータ thisArg は、バインドされた関数が呼び出されるときに、このパラメータが this へのポインタとして使用されることを意味します。 new 演算子を使用してバインドされた関数を呼び出す場合、このパラメーターは効果がありません。

パラメータ arg1、arg2、... は、バインドされた関数が呼び出されるとき、これらのパラメータは実際のパラメータの前にバインドされたメソッドに渡されることを意味します。

まず例を見てみましょう:

this.name="jack";
var demo={
name:"rose",
getName:function(){return this.name;}
}
 
console.log(demo.getName());//输出rose 这里的this指向demo
 
var another=demo.getName;
console.log(another())//输出jack 这里的this指向全局对象
  
//运用bind方法更改this指向
var another2=another.bind(demo);
console.log(another2());//输出rose 这里this指向了demo对象了

bind application

関数の初期パラメータを事前に設定できます:

function a(){
return Array.prototype.slice.call(arguments);//将类数组转换成真正的数组
}
var b=a.bind(this,15,20)
alert(b());//弹出 15,20
var s=b(25,30);
alert(s);//弹出 15,20,25,30

js binding を複数回実行します。初回のみ有効です

var getname = function(){console.log(this.name)};
var m = getname.bind({name:'q1'}).bind({name:'q2'});
m();

出力は q1

[推奨学習: JavaScript 上級チュートリアル ]

以上がJavaScriptでバインドとはどういう意味ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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