This page was saved using jaction on 2006-09-04 8:33:42.
Address: http://flexdocs.kr/docs/flex2/langref/Function.html
Title: Function (Flex™ 2 레퍼런스 가이드)  •  Size: 27440
Package톱 레벨
Classpublic dynamic class Function
InheritanceFunction Inheritance Object

함수는, ActionScript 로 호출할 수 있는 코드의 기본 단위입니다. ActionScript 의 유저 정의 함수와 빌트인 함수는, 어느쪽이나 Function 클래스의 인스턴스인 Function object로 나타내집니다.

클래스의 Methods는, Function object와는 조금 다릅니다. Methods는 통상의 함수 object와는 달라, 관련의 클래스 object와 긴밀히 링크 되고 있습니다. 이 때문에, Methods 또는 property는, 동일 클래스의 모든 인스턴스로 공유되는 정의를 가집니다. Methods를 인스턴스로부터 추출해,"바인드" Methods로서 취급할 수가 있는. 원의 인스턴스와의 링크는 유지됩니다. 바인드메솟드에 대해서는,this 키워드로, Methods의 Implements원object를 가리킵니다. 함수에 대해서는,this 로, 함수가 불려 갔을 때의 관련 object를 가리킵니다.

View the examples

See also

Methods


Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
Public Methods
 Methods정의
  apply (thisObject:Object , argArray:Array = null):void
ActionScript 가 호출하는 함수내에서 사용되는 thisObject 의 값을 지정합니다.
Function
  call (thisObject:Object , parameter1:String = null):void
Function object가 나타내는 함수를 호출합니다.
Function
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
Methods의 상세
apply()Methods
AS3 function apply(thisObject:Object , argArray:Array = null):void

ActionScript 가 호출하는 함수내에서 사용되는 thisObject 의 값을 지정합니다. 이 Methods는, 불려 가는 함수에게 건네지는 Parameters도 지정합니다. apply() 는 Function 클래스의 Methods이므로, ActionScript 내의 모든 Function object의 Methods라고 해도 사용할 수 있습니다.

Parameters는, 칸마 단락 리스트로서 Parameters를 지정하는 Function.call() 과는 달리, Array object로서 지정합니다. 이것은, 스크립트가 실제로 실행될 때까지, 건네받는 Parameters수가 불명한 경우에도 편리합니다.

불려 간 함수가 반환값으로서 지정하는 값을 돌려줍니다.

Parameters
thisObject:Object — 함수의 적용처의 object입니다.
 
argArray:Array (default = null) — 엘리먼트를 Parameters로서 함수에 건네주는 배열입니다.

See also

call()Methods 
AS3 function call(thisObject:Object , parameter1:String = null):void

Function object가 나타내는 함수를 호출합니다. ActionScript 의 모든 함수는 Function object에 의해 나타내집니다. 따라서, 모든 함수는 이 Methods를 지원(support)하고 있습니다.

대부분의 경우, 이 Methods 대신에 함수 호출 연산자 (())를 사용할 수 있습니다. 함수 호출 연산자를 사용하면, 코드가 간결하게 되어 읽기 쉬워집니다. 이 Methods는, 주로 함수 호출의 thisObject Parameters를 명시적으로 제어할 필요가 있는 경우에 도움이 됩니다. 통상, 함수를 object의 Methods로서 함수의 본체내에서 호출하면, 다음과 같이 thisObjectmyObject 로 설정됩니다.

  myObject.myMethod(1, 2, 3);
  

thisObject 가 다른 다른 장소를 포인트 하도록(듯이) 설정하는 경우도 있습니다. 예를 들어, object의 Methods로서 호출하는 함수가, 실제로는, 그 object의 Methods로서 포함되어 있지 않은 경우 등입니다.

  myObject.myMethod.call(myOtherObject, 1, 2, 3); 
  

함수를 object의 Methods로서 호출하지 않고 통상의 함수로서 호출하려면 ,thisObject Parameters에 값 null 를 건네줍니다. 예를 들어, 다음의 2 개의 함수 호출은 같습니다.

  Math.sin(Math.PI / 4)
  Math.sin.call(null, Math.PI / 4)
  

불려 간 함수가 반환값으로서 지정하는 값을 돌려줍니다.

Parameters
thisObject:Object — 함수의 본체내에서 thisObject 의 값을 나타내는 object입니다.
 
parameter1:String (default = null) — 함수에 건네주는 Parameters입니다. 지정할 수 있는 Parameters의 수는 0 개 이상입니다.

See also

Examples

다음의 예에서는,FunctionExample, SimpleCollection,EventBroadcaster, 및 EventListener 클래스를 사용해, ActionScript 에서의 함수의 다양한 사용법을 나타내고 있습니다. 이것을 실시하려면 , 이하의 순서를 실행합니다.
  1. FunctionExample 의 constructor    에서는, simpleColl 라는 이름의 로컬 변수를 작성해, 이 변수에 1 으로부터 8.
  2. trace() 를 사용해,simpleColl object를 출력합니다.
  3. EventListener object listenersimpleColl 에 추가합니다.
  4. insert() 함수와 remove() 함수가 불려 가면, listener는 각각의 이벤트에 응답합니다.
  5. greaterThanFourColl 라는 이름의 2 번째의 SimpleCollection object를 작성합니다.
  6. greaterThanFourColl object에는, 인수 4 를 사용했다 simpleColl.select() 의 결과를 할당할 수 있습니다. SimpleCollection object의 select Methods는, 익명 함수 Parameters를 블록으로서 사용하는 내부 이테레이타입니다.
package {
    import flash.display.Sprite;
    
    public class FunctionExample extends Sprite {
        public function FunctionExample() {
            var simpleColl:SimpleCollection;
            simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8);
            trace(simpleColl);        // 0, 1, 2, 3, 4, 5, 6, 7, 8

            var listener:EventListener = new EventListener();
            simpleColl.addListener(listener);
            simpleColl.insert(9);        // itemInsertedHandler: 9
            simpleColl.remove(8);        // itemRemovedHandler: 8
            trace(simpleColl);        // 0, 1, 2, 3, 4, 5, 6, 7, 9

            var greaterThanFourColl:SimpleCollection;
            greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value });
            trace(greaterThanFourColl);    // 5, 6, 7, 9
        }
    }
}
    
import flash.display.Sprite;
    
class EventBroadcaster {
    private var listeners:Array;

    public function EventBroadcaster() {
        listeners = new Array();
    }
        
    public function addListener(obj:Object) :void {
        removeListener(obj);
        listeners.push(obj);
    }
        
    public function removeListener(obj:Object) :void {
        for(var i:uint = 0; i < listeners.length; i++) {
            if(listeners[i] == obj) {
                listeners.splice(i, 1);
            }
        }
    }
    
    public function broadcastEvent(evnt:String, ...args) :void {
        for(var i:uint = 0; i < listeners.length; i++) {
            listeners[i][evnt]. apply(listeners[i], args);
        }
    }    
}
    
class SimpleCollection extends EventBroadcaster {
    private var arr:Array;
        public function SimpleCollection(... args) {
        arr = (args.length == 1 && ! isNaN(args[0])) ?  new Array(args[0]) : args;
    }
        
    public function insert(obj:Object) :void {
        remove(obj);
        arr.push(obj);
        broadcastEvent("itemInsertedHandler", obj);
    }
        
    public function remove(obj:Object) :void {
        for(var i:uint = 0; i < arr.length; i++) {
            if(arr[i] == obj) {
                var obj:Object = arr.splice(i, 1)[0];
                broadcastEvent("itemRemovedHandler", obj);
            }
        }
    }

    public function select(val:int, fn:Function) :SimpleCollection {
        var col:SimpleCollection = new SimpleCollection();
        for(var i:uint = 0; i < arr.length; i++) {
            if(fn.call(this, arr[i], val)) {
                col.insert(arr[i]);
            }
        }
        return col;
    }
        
    public function toString() :String {
        var str:String = new String();
        for(var i:uint = 0; i < arr.length - 1; i++) {
            str += arr[i] + ", ";
        }
        str += arr[arr.length - 1];
        return str;
    }
}

class EventListener {
    public function EventListener() {
    }
    
    public function itemInsertedHandler(obj:Object) :void {
        trace("itemInsertedHandler: " + obj);
    }
    
    public function itemRemovedHandler(obj:Object) :void {
        trace("itemRemovedHandler: " + obj);        
    }
}






 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/Function.html