2009-07-29 6 views
0

의 값을 문자열로 변환 나는처럼 보이는 자바 스크립트 객체가 다음자바 스크립트 : 미리 정의 된 변수

venue = function(map, dataSet) { 
    // set some constants 
    this.VENUE_ID = 0; 
    this.VENUE_NAME = 1; 
    this.VENUE_CITY = 2; 

    this.filterBy = function(field, value) { 
     ... 
     var filterValue = 'parent.VENUE_' + field; 
    } 
} 

자, 문제는 내가에 상수의 값을 포함하는 filterValue의 값을 필요로한다는 것입니다 부모 객체. 현재 나는 위의 메서드를 사용하여 시도한 다음 배열 항목에 액세스하려고 할 때 filterValue를 참조하지만 이는 단순히 undefined를 반환합니다.

filterValue 변수를 나타내는 상수 값으로 변환하려면 어떻게해야합니까?

답변

3

이것은 가변 범위와 관련이 없습니다.

var filterValue = this['VENUE_' + field]; 

이됩니다.

1

이 시도 :

var filterValue = this['VENUE_' + field]; 
2

자바 스크립트는 '부모'의 개념이 없습니다. 그리고 나는 당신이 범위와 맥락을 혼동스럽게 생각한다고 생각합니다. 해당 메서드가 var filterBy()로 작성된 경우 다른 '범위'에서 액세스해야합니다. 그러나 'this'를 사용함으로써 당신은 쓰여진 것과 같은 대상에 머물러있게됩니다. 그래서 당신이 쓴 모든 것은 '이'맥락에 있습니다.

+0

아하이 봐요! 고마워. 잘 모르겠다. 나는이 시점까지 각각의 기능에 외부 적으로 'this'를 수동으로 설정했다. 이유는 콜백 함수를 사용하는 것과 관련이 있다고 생각합니다. – tombazza