Как сделать короткое имя для свойства Array - PullRequest
3 голосов
/ 14 марта 2011

У меня часто бывают опечатки при наборе слова "длина", и я хотел бы сделать короткое имя для этого свойства.Например, "len"

Я легко могу создать метод Array:

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

, но тогда я должен вызвать [1,2,3] .len () со скобками ...
а как сделать недвижимость?(и назовите его [1,2,3] .len)

Я пробовал что-то вроде этого:

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

, но этого не виднотаким образом

Заранее спасибо

1 Ответ

2 голосов
/ 14 марта 2011

Определите getter следующим образом:

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

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

(Обратите внимание: как упоминалось в комментариях выше, обычно плохая идея изменить prototype собственного объекта. Также обратите внимание, чтоподдержка браузера для методов получения / установки JavaScript, вероятно, отрывочна.)

...