2011-10-12 2 views

답변

7

을하는 데 도움이 :

if (myFoo.hasOwnProperty("myNewDynamicProp")) { 
    // do whatever 
} 
2

사용을위한 hasOwnProperty (속성 이름) 방법 :

if(myFoo.myNewDynamicProp) { 
    //you can access it 
} 

희망

-1

하는 당신은 그냥이 같은 간단한 널 체크를 할 수 있어야 당신은 세 가지 중 하나를 할 수 있습니다. 첫째, 다이나믹 인스턴스에 존재하지 않는 속성을 호출해도 예외는 발생하지 않습니다. 그냥 undefined을 반환하기 때문에 테스트 할 수 있습니다. 또는 in 키워드를 사용할 수 있습니다. 또는 hasOwnProperty() 방법을 사용할 수 있습니다. 또한 동적 클래스의 속성을 반복이를 사용 할 수 myFoo['nothing']

+0

이것은 작동하지 않습니다. – HDave

+0

아, 좋은 전화, 그 대답에 조금 돌진했다. 오직 Foo 클래스에 정의 된 프로퍼티의 null 체크를 위해서만 작동합니다. 감사. 선택한 대답의 첫 번째 예제가 그때도 작동하지 않을까요? – eak12913

+0

존재하지 않는 동적 속성을 쿼리 할 때 Flex는 "undefined"를 반환합니다. 하지만 진정한 대답은 "hasOwnProperty"라는 메서드였습니다.이 클래스는 Eclipse에서 클래스에 대한 메서드로 표시되지 않지만 작동합니다! – HDave

2

:

var myFoo:Foo = new Foo(); 

myFoo.newProp = "bar"; 

trace(myFoo.newProp != undefined); // true 
trace(myFoo.nothing != undefined); // false 

trace("newProp" in myFoo); // true 
trace("nothing" in myFoo); // false 

trace(myFoo.hasOwnProperty("newProp")); // true 
trace(myFoo.hasOwnProperty("nothing")); // false 

당신은 또한 그냥 간단하게 첫 번째 예를 들어 대괄호 표기법을 사용할 수

는 다음과 같은 고려

for (var propertyName:String in myFoo) 
{ 
    trace("Property " + propertyName + ": " + myFoo[propertyName]); 
    if (propertyName == "myNewDynamicProp") 
    { 
     // found 
     // may be do something 
    } 
} 

이렇게하면 원하는 속성을 확인할 수있을뿐 아니라 전반적인 (동적) 클래스 속성으로 많은 작업을 수행 할 수 있습니다.

관련 문제