2014-01-07 2 views
1

Firefox에서 깨진지도에 흥미로운 문제가 있습니다. 빈지도에 문자열 "watch"가 있는지 검사 할 때 true를 반환하고 watch() 함수를 반환합니다. 나는 "watch"키를 맵에 추가하지 않았기 때문에 false를 반환하기를 원합니다. 빠른 예를자바 스크립트 맵 반환 함수

나는 일반적으로

var myMap = {} 
myMap["apple"] = 1; 
myMap["pear"] = 2; 

같은 기본적인지도를 만들고지도 개체를 경우 내가

if ("apple" in myMap) { ... } 

를 작성합니다 테스트하고 문제는 내가를 추가 할 때입니다 지도에 모든 준비가 포함되어 있지 않으면 "watch"문자열을지도에 추가하십시오. 그래서지도에 "시계"가 있는지 확인하면 사실을 반환합니다.

이 동작을 방지하는 방법에 대한 아이디어가 있으십니까?

감사

+3

객체는 속성을 내장 한 [Object.watch (HTTPS를 : //developer.mozilla합니다. org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch) 중 하나인데 아직 사용 중이 아닌 속성 이름을 사용하면 자체적으로 해결됩니다. – adeneo

답변

2

그건 시도 할 수 있기 때문에 개체 프로토 타입에서 객체 리터럴 상속은. 당신은 아무것도 상속 빈 개체를 만들 수 있습니다

var myMap = Object.create(null); 

또는 hasOwnProperty 확인 :

if (myMap.hasOwnProperty('watch')) { 
    ... 
} 
+0

감사합니다. 빈 객체를 만드는 것은 내가해야 할 일이다. –

2

당신은

var myMap = {}; 
myMap["apple"] = 1; 
myMap["pear"]=2; 

if (myMap.hasOwnProperty("apple")) { 

} 

if (myMap.hasOwnProperty("watch")) { 

}