当我创建一个对象时,将它分配给一个变量,然后一切正常:
var obj = {"a": 1};
obj.a; // 1
但是当我删除变量时,它不再起作用了:
{"a": 1}.a // Uncaught SyntaxError: Unexpected token :
如果我将对象文字括在括号中,它会再次起作用:
({"a": 1}).a // 1
我认为区别在于对象文字被解释为一个块,而解释器试图执行"a": 1
部分,这显然是错误的。添加括号会强制创建对象。
我是否在正确的轨道上?有什么东西被认为是块与对象有什么规则?