| Summary: Function |
| Author: Ext Community (번역 : Rhio.kim) |
| Published: Unkown |
| Ext Version: 1.1 |
Languages: English Chinese French Korean
|
자바스크립트에서 function은 메소드를 갖을 수 있는 오브젝트입니다. Ext 라이브러리는 Function 오브젝트를 확장하여 만들어 놓은 모든 기능을 제공하고 여러분이 정의한 기능들에 상속될 것입니다.
다음의 메소드들은 함수에 명확한 유효범위(scope)를 바인드하기 위한 매우 편리한 방식을 제공합니다.
Contents |
자바스크립트에서 C에서 function 포인터를 제공하는 방식과 유사한 방식으로 핸들러가 되기 위해 function 레퍼런스를 제공한다. 이 뜻은 기본적으로 function에는 아무런 오브젝트도 바운드 되지 않고 그 this의 값은 브라우저의 window 오브젝트가 될 것이다. 이것이 OO(Object Oriented) JavaScript를 쓰기 위해 시작할 때 많은 에러와 많은 오해의 원인됩니다.
다음에 올 Function 오브젝트의 메소드는 지정한 함수에 scope(그것의 this 참조)가 유지 되도록 오브젝트를 바인드 시키기고 함수에 아규먼트 또한 바인드 하도록 해준다.
createDelegate(API reference)는 오브젝트의 scope를 갖는 function에 오브젝트를 바인드하고 함수에 전달되어진아규먼트 리스트는 배열처럼 지정하도록 해준다. 선택적으로 아규먼트 리스트에 지정한 파라미터를 배열에 추가한다. 만약 세번째 아규먼트가 전달되지 않았다면 Array는 아규먼트 리스트 전체가 됩니다.
Example:
var fn = func1.createDelegate(scope, [arg1,arg2], true) fn(a,b,c) === scope.func1(a,b,c,arg1,arg2); var fn = func1.createDelegate(scope, [arg1,arg2]) fn(a,b,c) === scope.func1(arg1,arg2); var fn = func1.createDelegate(scope, [arg1,arg2], 1) fn(a,b,c) === scope.func1(a,arg1,arg2,b,c);
createCallback(API reference)은 지정한 함수의 아규먼트가 바인드 되도록 해준다. 그냥 createCallback에 파라미터로 아규먼트를 지정한다.
Example:
var fn = func1.createCallback(arg1, arg2); fn() === func1(arg1, arg2)
또한 Ext 라이브러리는 몇 가지 기본적인 관점지향 프로그래밍(aspect-oriented programming) 시스템을 제공한다. 뜻은 여러분이 선택한 함수가 다른 함수 전 혹은 후에 실행될 수 있고 그것은 결과에 따라 실행 체인을 변경할 수 있다. 이 시스템은 여러분이 Ext 버전의 상속 혹은 오버라이딩을 사용하지 않고 만들어진 기능의 습성 확장을 원할 때 매우 유용하게 될 수 있다. 여러분은 다음에 올 두가지 메소드를 사용하여 기존 함수 앞이나 뒤에 여러분의 원하는 기능을 추가할 수 있습니다.
createInterceptor
createInterceptor(API reference)에 지정한 function은 원래 함수전에 호출될 것입니다. 결과가 통과되었다면 원래 함수에 모든 아규먼트가 전달 됩니다. 만약 false가 전달되면 원래의 함수는 호출되지 않을 것입니다. 선택적 scope 파라미터를 전달 될 것입니다.
createSequence(API reference)에 지정한 function은 원래 수행될 함수 후에 호출되어지도록 해줍니다. 선택적 scope 파라미터를 전달 될 것입니다.
또한 Ext 라이브러리는 고유 자바스크립트의 setTimeout 호출의 캡슐화의 편리한 방법을 제공합니다.
defer function(API reference)은 지정된 timeout이 만료될 때 까지 함수의 실행을 늦추도록 해주고 또한 scope를 지정하는 함수를 수행할 뿐만 아니라 호출될 때 아규먼트 리스트를 전달하도록 해줍니다.