원숭이 패치 Object.prototype
하지 마십시오.
Object.prototype.replace = "lol";
for (var i in { "bar": 42 }) {
alert(i);
}
// "bar"
// "replace" :(
는 기본적으로 for ... in
루프는 프로토 타입에 정의 포함한 객체 의 모든 속성을 반복. 그렇기 때문에 Object.prototype
을 확장하거나 변경하는 것은 나쁜 습관입니다.
어떤 사람들은 "원숭이 패치 , String
, Function
, ..."까지도 가지 않습니다.
은 Object.prototype
으로 엉망으로 처리해야합니다. 나머지 원시 프로토 타입은 스타일 선택입니다.
Object
에 함수를 정의하십시오.
Object.replace = function() { ... };
var o = Object.replace(p);
은 ES5 : ECMAScript를 5 당신은 그냥 사실 반환 함수 본문을 제거하더라도 비 열거
Object.defineProperty(Object.prototype, "replace", {
value: function() { }
});
으로 속성을 설정할 수 있습니다, 저도 같은 문제를 얻을. –
http://stackoverflow.com/questions/1827458/prototyping-object-in-javascript-breaks-jquery –