angular.bind
설명: self를 호출하는 함수 fn을 반환합니다(self는 fn에서 이를 나타냄). 매개변수 args(*)를 fn에 제공할 수 있습니다. 이 함수는 함수를 구별하기 위해 로컬 연산이라고도 합니다.
형식: angle.bind(self,fn,args);
self: object object; fn에서 호출할 수 있는 fn의 컨텍스트 개체
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라는 두 엔터티가 있어야 합니다. 여기에 필요한 두 엔터티는 개체와 함수입니다. 그럼 어떻게 묶어야 할까요? @Beast의 이해는 실행을 위해 함수의 this에 객체를 "연결"하는 것입니다. 세 번째 매개변수는 함수에 필요한 경우 선택 사항입니다. 매개변수를 전달하려면 fn 함수에 전달되는 매개변수인 angle.bind의 세 번째 매개변수를 입력하면 됩니다.
첫 번째 케이스 작성 방법은 바인딩 정의 시 fn에 필요한 매개변수를 전달하고 호출 시 직접 사용하는 것입니다. 두 번째 케이스 작성 방법은 먼저 바인딩한 후 호출할 때 사용하는 것입니다. 실행 시 매개변수를 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>