Object와 ObjectProxy의 상호 전환

2088 단어 object
본고는 Object와 ObjectProxy의 상호작용을 간단히 소개한다.
1 Object2ObjectProxy
private function object2ObjectProxy():void{
        // Object
        var obj:Object = {"name":"swflash"};
        var objProxy:ObjectProxy = new ObjectProxy(obj);
        trace(obj.name);
        trace(objProxy.name);
        // 
        var array:Array =[{"name":"swflash"}];
        var arrayProxy:ObjectProxy = new ObjectProxy(array);
        trace(array[0]["name"]);
        trace(arrayProxy[0]["name"]);
}
 
출력 결과는 다음과 같습니다.
쓰다
swflash
swflash
swflash
swflash
 
ObjectProxy의 사용법이 일반 Object와 동일함을 알 수 있습니다.
 
2 ObjectProxy2Object
 
ObjectProxy 클래스는 Object를 포함하지만 읽기 전용입니다.ObjectProxy의 Object 속성을 가져오려면 약간의 우여곡절이 필요합니다.
//메서드 1
private function objectProxy2Object():void{
        // Object
        var obj:Object = {"name":"swflash"};
        var sourceObj:Object = {"name":"swflash"};
        var objProxy:ObjectProxy = new ObjectProxy(sourceObj);
        // , import mx.utils.object_proxy;
        var targetObj:Object = objProxy.object_proxy::object;
        trace(targetObj["name"]);
        trace(obj == sourceObj);
        trace(sourceObj == targetObj);
}
 
출력:
쓰다
swflash
false
true
 
얻은 실례는 백업이 아닌 기존 Object임을 알 수 있습니다.
 
//메서드 2
private function objectProxyTOObject():void{
        var sourceObj:Object = {"name":"swflash"};
        var objProxy:ObjectProxy = new ObjectProxy(sourceObj);
       // 
       //import mx.utils.object_proxy;
       //use namespace  object_proxy;
        var targetObj:Object = objProxy.object;
        trace(targetObj["name"]);
        trace(sourceObj == targetObj);
}
 
출력:
쓰다
swflash
true

좋은 웹페이지 즐겨찾기