angular.bind
Explication : renvoie une fonction fn qui appelle self (self représente cela dans fn). Les paramètres args (*) peuvent être fournis à fn. Cette fonction est également appelée opération locale pour distinguer la fonction.
Format : angulaire.bind(self,fn,args);
self : object object ; l'objet contextuel de fn, qui peut être appelé avec ceci dans fn
fn : fonction ; méthode de liaison
args : paramètres passés dans 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!!!
Parlons de notre compréhension d'angular.bind~
bind signifie liaison comme son nom l'indique, donc si nous voulons lier A à B, alors il doit y avoir deux entités, A et B. Les deux entités nécessaires ici sont un objet et une fonction. Alors comment l'attacher ? La compréhension de @Beast est de "lier" l'objet à this de la fonction pour l'exécution. À ce stade, this of fn est égal à obj. Quant au troisième paramètre, il est facultatif. Cela dépend des besoins de la fonction. pour passer des paramètres, alors nous pouvons mettre le troisième paramètre de angulaire.bind, qui est le paramètre passé dans la fonction fn.
La première façon d'écrire dans le cas est de transmettre les paramètres requis par fn lors de la définition de la liaison, et de les utiliser directement lors de l'appel. La deuxième façon d'écrire dans le cas est de lier d'abord, puis de l'utiliser lors de l'appel et. l'exécution. Passer des paramètres à fn a le même effet
Pour les phrases en anglais ci-dessus (enfin, même s'il n'y a que 2 phrases), s'il y a des erreurs, cela signifie que nous aimons profondément notre langue maternelle - le chinois, si vous l'avez accidentellement écrit correctement, alors veuillez soutenir cet Applaudissements ; à B qui prétend être 66666~
À la fin de l’article, regardons un exemple
<!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>