0
var obj = {a:5};

5有没有一种方法可以在不使用源代码中的括号语法obj["a"]或点语法的情况下访问该值?obj.a

4

2 回答 2

1

这非常难看,但我认为这就是您要的:http: //jsfiddle.net/q4egt/

var obj = {a: 5};
alert(Object.getOwnPropertyDescriptor(obj, 'a').value);

我猜有“解决方法”。

于 2013-03-12T03:59:33.647 回答
1

既然你没有提供你想要这样做的理由,那么一切都会发生,对吧?因此,尽管它很丑,但请考虑:

var o = {a:5};
alert(
  JSON.stringify(o).replace(/^.*\"a\":([^,\"}]*).*$/,'$1') // 5
);

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

于 2013-03-12T04:16:49.863 回答