引用和未引用JavaScript对象属性之间的差异

引用和未引用JavaScript对象属性之间的差异,javascript,object,Javascript,Object,引用的和未引用的JavaScript对象属性/方法名称之间是否存在差异 例如,这两者之间的区别是什么: var obj1 = { property1 : "Value 1", method1 : function() { return true; } }; var obj2 = { "property1" : "Value 1", "method1" : function() { return true; } }; JavaScript中没有区别。但是

引用的和未引用的JavaScript对象属性/方法名称之间是否存在差异

例如,这两者之间的区别是什么:

var obj1 = {
  property1 : "Value 1",
  method1 : function() {
    return true;
  }
};

var obj2 = {
  "property1" : "Value 1",
  "method1" : function() {
    return true;
  }
};

JavaScript中没有区别。但是,您必须引用恰好是保留字的属性名称(如
class
),或包含无效字符的名称(如
first name
)。

直到ES 3,您需要引用该语言的(新的、默认的、类等)。然而,在新版本中,这是不必要的

但是由于ES5还没有得到很好的支持,您需要坚持引用all

如果你不想记住完整的单词列表,最好把所有的单词都引用出来

额外:这就是为什么元素上没有
float
class
属性的原因。您必须使用
cssFloat/styleFloat
className


另外,您需要引用JSON字符串中的每个键。原因是他们希望它独立于语言,以避免干扰ES3中的愚蠢限制。

因此,我认为,这实际上只是编码风格的问题。但是由于必须引用保留字对JavaScript造成了限制,因此始终引用属性/方法应该更为一致。@jindrichm:是的,您可以在引用所有属性名时保持一致,但另一方面,您也可以在使用有效变量名的属性名时保持一致。一般来说,我倾向于不引用,但我不是特别致力于这两种风格。。。请注意,如果您使用的属性名称不是有效的变量名称,您将无法使用点符号访问属性:
myObject.myProperty
,但您将仅限于使用下标符号:
myObject['myProperty']
。我想您指的是ES3,因为ES3.1只是针对ES5,当ES4被放弃的时候。是的,我只是在快速打字,忘了检查,thx的打字错误…:)