Dojo API-dojo.hitch

4992 단어 dojo

바인딩 컨텍스트


dojo.hitch는 함수를 구체적인 상하문에 연결해서 실행할 수 있습니다.우선 1개 혹은 2개의 매개 변수의 상황을 고려한다.두 개의 파라미터를 받아들일 때 첫 번째 파라미터는 귀속할 대상을 표시하고 두 번째 파라미터는 대상에 귀속할 방법을 표시한다(함수 정의나 문자열 형식의 함수 이름일 수 있다).예:
첫 번째 형식의 호출:
/*

*o:  

*f: o 

*/

dojo.hitch(o, o.f);

호출 후 반환된 결과는 다음과 같습니다.
function() {

   return o.f.apply(o, arguments);

}

그래서hitch가 함수를 되돌려줍니다
두 번째 호출 형식:
/*

*o:  

*f: o 

*/

dojo.hitch(o, "f");

호출 후 반환 결과:
function() {

    return o["f"].apply(o, arguments);

}

dojo는 구성원 함수를 귀속할 수 있을 뿐만 아니라 일반 함수를 한 대상에 귀속시키거나 한 대상을 귀속시키는 방법으로 다른 대상에 귀속시킬 수 있다.
/*

*o:  

*f:  

*/

dojo.hitch(o, f);



/* */

function() {

   return f.apply(o, arguments);

}

/*

*o:  

*f: p 

* o != p

*/

dojo.hitch(o, p.f);



/* */

function() {

    return p.f.apply(o, arguments);

}

만약 하나의 매개 변수만 전달한다면, 도조에 해당한다.hitch의 첫 번째 인자가null로 설정되면 전달된 함수는 전역 공간에서 실행됩니다.
/*

*f:  

*/

dojo.hitch(null, f);



/* */

f



dojo.hitch(null, "f");



/* */

function() {

    return dojo.global[f].apply(dojo.global, arguments); //dojo.global 

}

바인딩 매개 변수


도조에게 전해주면.hitch의 매개 변수가 2개보다 크면 첫 번째 매개 변수는 여전히 귀속될 대상이고 두 번째 매개 변수도 대상에 귀속되는 방법이다. 다른 매개 변수는 이 귀속된 방법에 전달되는 매개 변수이다.
/*

*o:  

*f:  

*a1, a2,... ,an: f 

*/

dojo.hitch(o, f, a1, a2,..., an);

/* */

function() {

    return f.apply(o, [a1, a2, ..., an].concat(argumetns));  

}

예를 들어 다음과 같은 함수가 있습니다.
var printArgs = function(str1, str2, str3) {

    alert(str1 + str2 + str3);

}

도조를 통해서.hitch 호출:
var print = dojo.hitch(null, printArgs, "this", "is");

print("easy"); //  this is easy

/*  printArgs("this", "is", "easy");

총결산


dojo.hitch는 실제적으로 한 함수를 다른 대상에 연결하고 이 함수의 호출 과정을 익명 함수에 봉인한 다음 이 익명 함수를 반환값으로 한다.
 

좋은 웹페이지 즐겨찾기