angular.bind
説明: self を呼び出す関数 fn を返します (fn では self がこれを表します)。この関数は、関数を区別するためにローカル操作とも呼ばれます。
形式: angular.bind(self,fn,args);
self: object オブジェクト; fn のコンテキスト オブジェクト。fn
で this を使用して呼び出すことができます。fn: バインディングメソッド
args: fn
に渡されるパラメータvar obj = { name: "Any" }; var fn = function (Adj) { console.log(this.name + "is a boy!!! And he is " + Adj + " !!!"); }; var f = angular.bind(obj, fn, "handsome"); f();//Any is a boy!!! And he is handsome!!! var t = angular.bind(obj, fn); t("ugly");// Any is a boy!!! And he is ugly!!!
angular.bind についての理解を話しましょう~
bind は名前が示すようにバインディングを意味するため、A を B にバインドしたい場合は、A と B の 2 つのエンティティが必要です。ここで必要な 2 つのエンティティは、オブジェクトと関数です。では、どうやって結ぶのでしょうか? @Beast の理解では、この時点で、fn の this は、関数の要件に応じてオプションになります。パラメータを渡すには、angular.bind の 3 番目のパラメータを指定できます。これは、fn 関数に渡されるパラメータです。
ケースの最初の記述方法は、バインディングを定義するときに fn に必要なパラメーターを渡し、呼び出し時にそれを直接使用することです。ケースの 2 つ目の記述方法は、最初にバインドしてから呼び出し時にそれを使用することです。パラメータを fn に渡すと同じ効果があります
上記の英語の文 (文は 2 つしかありませんが) に間違いがある場合は、私たちが母国語である中国語を深く愛していることを意味します。誤って正しく書いた場合は、この拍手をサポートしてください。 66666~
のふりをするBさんへ記事の最後で例を見てみましょう
<!DOCTYPE HTML> <html ng-app> <head> </head> <script src="http://code.angularjs.org/1.2.3/angular.min.js"></script> </body> <script> var self = {name:'boyi'}; //示例1--带参数 var f = angular.bind(self, //绑定对象,作为函数的上下文 //被绑定的函数 function(age){ alert(this.name + ' is ' + age + ' !'); }, //绑定的参数,可省略 '15' ); f();//调用绑定之后的function //示例2--不带参数 var m = angular.bind(self, //绑定对象,作为函数的上下文 //被绑定的函数 function(age){ alert(this.name + ' is ' + age + ' !'); } //省略参数 ); m(3);//调用传参的函数 </script> </body> </html>