代码之家  ›  专栏  ›  技术社区  ›  Esteban Küber

可以在javascript中创建属性吗?

  •  2
  • Esteban Küber  · 技术社区  · 17 年前

    我想做一个定制 Array

    例如:

    >>> var MyArray(2);
    >>> MyArray[2];
    4
    >>> MyArray.2;
    4
    

    我知道对于所展示的示例,我更擅长使用函数,但我想知道我是否可以覆盖一些概念上是数组但可能需要一些计算的内容的属性/索引查找。

    x.1 == x[1] ,所以我需要的是在javascript中创建一个属性。

    我是说,制造 x.variable = x.myPropery() ,所以每次我得到 x.variable ,我收到了 x.myPorperty() .

    这可能吗?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Allen Rice 0x6A75616E    17 年前

    不,你不能覆盖[],它只是点符号,它不是一个你可以覆盖的索引

    回复:你的评论,绝对可以

    var x = new Array();
    x[1] = function () { alert('x') };
    
    var myFunction = x[1];
    
    x[1]();        // alerts "x"
    myFunction();  // alerts "x"
    
    alert(x[1]);         // alerts "function () { alert('x') };"
    alert(myFunction);   // alerts "function () { alert('x') };"
    
        2
  •  1
  •   Esteban Küber    17 年前

    目前 Javascript Getters and Setters are possible 只在

    • 火狐
    • 狩猎3+
    • 歌剧9.5+

    Internet Explorer(在任何it版本中)都缺乏这方面的功能。