(我无法相信这是不可能的,但我可能没有使用正确的搜索字词)
我有一个像这样的'课堂':
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很简单。我只是想进一步包装[ ]功能)
答案 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/