2012-02-07 3 views
1

특수 getter/setter를 사용하여 개체의 속성 변경 내용을 가로 채고 있으며 현재 일반 정의 된 모든 속성에 대해 잘 작동합니다. 그러나 내가 HTMLInputElement.value 또는 Array.length과 같은 기본 제공 속성에 동일한 아이디어를 사용할 수 있다면 이겠지만, 불행히도이 이름은 구성 할 수없는 것으로 정의되어 있으므로 getter/setter를 사용하여 다시 정의 할 때 오류가 발생합니다.네이티브 구성 할 수없는 속성에 JavaScript getter/setter 추가

내부 작동을 중단시키지 않고 강제로 재 정의 할 수있는 (신뢰할 수있는) 해킹이 있는지 궁금합니다.

그렇지 않은 경우, 네이티브 속성에 매핑되고 대신 사용되는 모든 속성에 대한 대체 속성을 정의해야 할 수도 있습니다.하지만 그렇게 이상적이지는 않습니다. 어떤 식 으로든 좋은 연습이 아니라 당신이 정말로 필요하다면, 그 기능이 너무 프로토 타입 수준에 정의 된

답변

-2

:

Array.prototype.length = (function(){})(); 

좋아, 난 심지어이 방법이 작동하지 않습니다 생각 일부 기능들은 자바 스크립트와

+0

네, 정확히, 그들은 당신이 그들의 정의를 변경할 수 없습니다 의미 unconfigurable로 정의하고 있습니다. 주위에 방법이 있다면 단지 궁금했다. – devios1

+0

[] .length는 함수가 아닌 * 함수입니다. – Michael

+0

예, 읽기 전용이 아닌 경우이를 다시 작성할 수 있습니다. –

관련 문제