【问题标题】:How to make short name to an Array property如何为数组属性创建短名称
【发布时间】:2011-03-14 20:38:16
【问题描述】:

我在输入单词“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)

但是这个不是这样看的

提前致谢

【问题讨论】:

  • 不要扩展原生原型。你可以定义Array.len = ... 并调用Array.len([1,2,3]) 虽然
  • 这么一个函数,可以作为属性调用?你可能想看看 getter,但 IE 不支持它。
  • 是的,我明白了,__ defineGetter __ 会帮助我,但 IE 不支持它 =(

标签: javascript function-prototypes


【解决方案1】:

像这样定义getter

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

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

(请注意:如上面的 cmets 中所述,修改本机对象的 prototype 通常是个坏主意。另外请注意,浏览器对 JavaScript getter/setter 的支持可能很粗略。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2019-08-13
    • 2015-01-30
    相关资源
    最近更新 更多