javascript中的索引属性

时间:2011-03-15 10:43:58

标签: javascript syntax

(我无法相信这是不可能的,但我可能没有使用正确的搜索字词)

我有一个像这样的'课堂':

function MyClass() = {
    this.getItem = function(key) {
        // return whatever;
    };
    this.setItem = function(key, val) {
        // set whatever
    };
};

我是否可以通过(我认为所谓的)索引属性获取/设置?

var test = new MyClass();
test["key"] = "value";
alert(test["key"]);

(上下文,如果它有任何区别,我正在尝试将localStorage包装在一个为所有键添加前缀的类中。包装setItem / getItem很简单。我只是想进一步包装[ ]功能)

3 个答案:

答案 0 :(得分:1)

您在JavaScript中不会以这种方式拥有自动访问器。至少我从未见过它。

您可以使用

var test = new MyClass();
test.key = "value";
alert(test.key);

alert(test["key"]);

但那可能不是你之后的......

答案 1 :(得分:1)

如MDC(link)中所述,可以在Javascript 1.8.5中执行此操作。但是对此的支持很差,而且大多只在firefox中。除此之外,没有真正的方法可以做到这一点。

答案 2 :(得分:0)

听起来你正在寻找吸气剂和制定者,你在这里阅读更多信息:

https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects#Defining_Getters_and_Setters

请注意,并非所有浏览器都支持此语法。

您可以在此处阅读有关getter和setter的更多信息:

http://ejohn.org/blog/javascript-getters-and-setters/

http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/