有没有办法在不使用obj.key或obj ['key']的情况下访问JavaScript对象值?

时间:2013-03-12 03:52:50

标签: javascript

var obj = {a:5};

有没有办法在不使用源代码的括号语法5或点语法obj["a"]的情况下访问值obj.a

2 个答案:

答案 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
);

需要将其修改为一般解决方案,但您应该明白这一点。使用该语言提供的属性访问方法要简单得多。