Mootools에서 extend와 implement를 사용하여 함수 확장 기능이나 방법

3750 단어 mootools
물론 함수에 대한 확장 기능이나 방법이란 원 함수를 수정하지 않는 전제를 가리킨다.
많은 사람들이 Mootools가 대상을 대상으로 하는 메커니즘이 괜찮다는 것을 알고 있지만 대부분의 사람들은 대상을 대상으로 하는 것을 잘못 이해하고 대상을 대상으로 하는 것이 유형이라고 생각한다. 그렇지 않으면 대상을 대상으로 하는 범위가 매우 넓다.
그러면 나의 이 글은 사실상 대상을 대상으로 하는 응용이다. 단지 이 대상은function이지class가 아니다.
// Function 
var Fun=function(){
  alert('a')
};
Fun.extend({
  aa:function(){
    alert('b');
  }
});
Fun();
Fun.aa();

위의 코드에서 함수 Fun의 유일한 용도는 a라는 문자를 출력하는 것이다. 이때 우리는 이 함수를 하나의 대상으로 이해한다. 만약에 우리가 이 함수에 새로운 방법을 추가해서 그가 a를 출력할 수 있는 것 외에 b를 출력할 수 있도록 해야 한다.
그래서 저는 extend로 Fun이라는 대상을 확장하는 방법을 사용했습니다. 확장된 방법이 호출될 때 약간 다를 수 있습니다.
다음 예는 속성과 방법을 확장하는 방법을 동시에 보여 준다.
var arr=[];
var Fun=function(){
arr=[1,2];
};
Fun.extend({
len:function(){// Fun
return arr.length;
},
add:function(val){// Fun
arr.push(val);
}
});

var a=Fun.len(arr);
alert(a+'|'+arr);// :0|

Fun();// arr

var a=Fun.len();
alert(a+'|'+arr);// :2|1,2

Fun.add(' ');

var a=Fun.len();
alert(a+'|'+arr);// :3|1,2,

Fun.add(['a','b','c']);

var a=Fun.len();
alert(a+'|'+arr);// :4|1,2, ,a,b,c

len은 제가 확장한 속성입니다. arr의 length 수를 얻는 데 사용되고add는 하나의 방법입니다. arr라는 array에 새로운 값을 추가하는 데 사용되는implement는 모든 함수를 확장하는 방법입니다. 사실 잘 이해합니다. 우리는 이미 Mootools에pass,bind,delay 등이 있다는 것을 알고 있습니다. 이런 방법은 모두 Mootools가 우리에게 미리 정의한 것입니다.
그러나 만약에 당신이 실제 개발 과정에서 그가 우리를 위해 미리 정의한 방법이 우리의 수요를 만족시키지 못한다는 것을 발견한다면 어떻게 해야 합니까? 간단합니다. 자신이 확장하기만 하면 됩니다. 아래를 보십시오.
// Function
var a=function(){};
var b=function(){};
Function.implement({
alert:function(msg){// alert
alert(msg);
},
output:function(msg){//firebug ,IE
console.log(msg);
}
});
a.alert('1');
a.output('2');
b.output('3');

이 글을 본 후에 당신은 Mootools의 대상에 대해 새로운 인식을 가지게 되었습니까?

좋은 웹페이지 즐겨찾기