2010-02-17 3 views

답변

5

obj가 동적 클래스인지 여부에 따라 다릅니다. obj [name]은 obj.name이 존재하지 않으면 컴파일 타임 오류를 생성하는 속성의 런타임 검사입니다.

+1

그리고 obj [ 'name']는 다른 방법으로는 불가능한 명백한 사용 사례가 있습니다 (동적 검색) –

4

실제로 그건 OBJ [식] 대 obj.identifier

전 항상 후자 수있는 반면, 동적 런타임 조회 결과 및 컴파일 시간에 체크한다. 결과적으로, obj가 봉인 (즉, 동적이지 않음)되고 식별자와 일치하는 속성을 가지지 않으면 컴파일 타임 오류가 발생할 수 있습니다. 또한 속성이 동적 (즉, 동적 객체의 런타임 추가 속성)이지만 객체 클래스에 정의 된 경우이 정보를 사용하여 더 빠른 조회가 수행됩니다.

는 요약 : 반면에 obj와 [표현], obj.identifier은 형태 보증signifficantly 빠른

2
var foobar:String = "id"; 

var obj:Object = new Object{ id:"the value of variable" }; 

trace(obj.id); // the value of variable 
trace(obj[ foobar ]); // value of variable 

가 변수 인 경우에는 [] 접근 방식을 사용하고 이름이 없었습니다

관련 문제