2011-03-14 60 views
3

我經常在輸入單詞「length」時出現拼寫錯誤,並且想對此屬性做一個簡短的名稱。例如 「LEN」如何爲數組屬性創建短名稱

我可以很容易使一個數組方法:

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

但後來我應該叫[1,2,3] .LEN()用方括號...
但如何做一個物業?

我已經試過這樣的事情(與[1,2,3] .LEN稱呼它):

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

沒有在這樣的方式看到

謝謝提前

+0

不要擴展原生原型。你可以定義'Array.len = ...'並調用Array.len([1,2,3])' – Raynos 2011-03-14 20:41:16

+0

那麼一個函數可以作爲屬性調用?你可能想看看getter,但IE不支持它。 – pimvdb 2011-03-14 20:49:13

+0

是啊,我明白了,__ defineGetter __會幫助我,但IE不支持它=( – 2011-03-14 21:00:58

回答

2

定義getter這樣的:

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

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

(請注意:正如在上面的評論中提到的那樣,修改本地對象的prototype通常是一個壞主意。另請注意,瀏覽器對JavaScript getters/setters的支持可能很粗略。)

+0

Yeap,我明白了。 – 2011-03-14 21:05:10

相關問題