1

我有以下代码:

 var factory = {
        query: function (selectedSubject) {
           ..
        }
 }

在 Javascript 中,这与以下内容相同:

 var factory = {
        'query': function (selectedSubject) {
           ..
        }
 }

我已经看到两者都使用过,我不确定是否有任何区别。

4

3 回答 3

3

该标准要求属性名称为以下之一:

PropertyName :
   IdentifierName
   StringLiteral
   NumericLiteral

也就是说,所有这些都是有效的:

 obj = {
       "query": ....
       'query': ....
        query:  ....
        12e45:  ....
   }

请注意,与流行的观点相反,该标准不要求名称是有效的标识符,只要求“标识符名称”。这实际上意味着您可以使用 JS 保留字作为属性名称:

x = {
    if: 100,
    function: 200,
}
console.log(x.if + x.function) // 300

并不是说它在日常编程中非常有用,只是一个值得了解的有趣事实。

于 2013-04-21T11:22:15.227 回答
2

您可以同时使用两者,但如果有空格,则不能使用第一个选项。这就是为什么有第二种选择。

于 2013-04-21T10:57:49.737 回答
-1

有效的 JSON 要求 "" 包围匿名对象的属性名称,但如果属性名称不是保留字或不包含某些特殊字符,则可以省略它们。通常使用“”更安全。

于 2013-04-21T11:00:29.703 回答