JavaScript의 Object 유형을 해당 객체의 일부인 속성 이름 (기본적으로 PHP의 array_keys()
함수가 연관 배열에 대해 수행하는 기능)을 검색하는 함수로 확장하려고 시도하고있었습니다. 변수 b
가 경고했다 Javascript custom Array.prototype for-in 루프와의 간섭
Object.prototype.keys = function() {
var a = [];
for (var property in this) {
a.push(property);
}
return a;
};
var a = {a:1,b:2,c:3,d:4};
alert(a.toSource());
var b = a.keys();
alert(b.toSource());
, 내가 대신 내가
["a","b","c","d","keys"]
을보고 있어요,
["a","b","c","d"]
를 볼 것으로 예상했다.
for-in 루프에는 프로토 타입 화 된 keys()
기능이 포함되어 있습니다.
아직 프로토 타입을 만드는 동안이 동작을 피할 수 있습니까? 아니면 모두 함께 프로토 타이핑하지 않아야합니까?
건배는, 매력을했다! –
정보를 얻기 위해 IE 6.0에서 버전 5.0까지 (5.5 있음)와 Safari 2.02까지는 'hasOwnProperty'가 지원되지 않습니다. 이러한 브라우저를 지원하는 데 신경 쓰지 않아도되지만 실제로는 그렇지 않다는 것을 알아야합니다. –