2011-03-14 4 views
3

나는 종종 "length"라는 단어를 입력하는 데 오타가 있으며이 속성에 짧은 이름을 지정하려고합니다. 예를 들어 "렌"Array 속성에 짧은 이름을 지정하는 방법

위해 나는 쉽게 배열 방법을 만들 수 있습니다

Array.prototype.len = function(){ return this.length } 

를하지만 내가 어떻게 ... .LEN() 괄호와
하지만를 [1,2,3]을 호출해야합니다 재산을 만드시겠습니까? 이 같은

내가 해봤 뭔가 (그리고 [1,2,3] .LEN로 전화) :이이 같은 방법으로 볼 수 없습니다

Array.prototype.len = (function(arr) {return arr.length})(this) 

하지만

감사합니다 사전에

+0

원시 프로토 타입을 확장하지 마십시오. – Raynos

+0

그래도 Array.len = ...을 정의하고 Array.len ([1,2,3])를 호출 할 수 있습니다. 따라서 함수로서 호출 할 수 있습니까? 게터를보고 싶을 수도 있지만 IE는 게터를 지원하지 않습니다. – pimvdb

+0

예, 알겠습니다. __ defineGetter __는 도움이되지만 IE는 지원하지 않습니다. = ( –

답변

2

이 같은 getter을 정의

Array.prototype.__defineGetter__("len", function() { 
    return this.length; 
}); 

var arr = [1, 2, 3]; 
arr.len // 3 

(참고 : 위의 설명에서 언급 한대로 일반적으로 기본 객체의 prototype을 수정하는 것은 좋지 않습니다. 또한 JavaScript getters/setters에 대한 브라우저 지원은 대략적 일 수 있습니다.

+0

Yeap, 이해했습니다. –

관련 문제