var obj = {a:5};
有没有办法在不使用源代码的括号语法5
或点语法obj["a"]
的情况下访问值obj.a
?
答案 0 :(得分:1)
这非常难看,但我认为这就是你所要求的:http://jsfiddle.net/q4egt/
var obj = {a: 5};
alert(Object.getOwnPropertyDescriptor(obj, 'a').value);
我猜有“解决方法”。
答案 1 :(得分:1)
既然你没有说明你想要这样做的原因,那么一切顺利,对吧?所以,丑陋,考虑:
var o = {a:5};
alert(
JSON.stringify(o).replace(/^.*\"a\":([^,\"}]*).*$/,'$1') // 5
);
需要将其修改为一般解决方案,但您应该明白这一点。使用该语言提供的属性访问方法要简单得多。