Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的索引属性_Javascript_Syntax - Fatal编程技术网

javascript中的索引属性

javascript中的索引属性,javascript,syntax,Javascript,Syntax,(我不敢相信这是不可能的,但我可能没有使用正确的搜索词) 我有一个这样的“类”: function MyClass() = { this.getItem = function(key) { // return whatever; }; this.setItem = function(key, val) { // set whatever }; }; 是否有某种方法可以通过(我认为是所谓的)索引属性获取/设置 var test =

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

我有一个这样的“类”:

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很容易。我只想更进一步,封装[]功能)

JavaScript中没有这样的自动访问器。至少我从未见过它

你可以用

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


但那可能不是你想要的

如MDC()中所述,可以在Javascript 1.8.5中实现这一点。然而,对这一点的支持很差,而且大多只在firefox中提供。除此之外,没有真正的方法可以做到这一点。

听起来您正在寻找getter和setter,您可以在这里阅读更多关于getter和setter的内容:

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

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


我不知道这是否可行,但您可以“扩展”数组对象,并将这些方法添加到自定义对象中。
alert(test["key"]);