Code Academy 表示,在 JavaScript 中创建对象有两种方法。
<强>1。对象字面量表示法
var myObject = {
key: value,
key: value,
key: value
};
<强>2。对象构造函数方法
var myObject = new Object();
然后可以添加键:
myObj["name"] = "Charlie";
myObj.name = "Charlie"; //shorthand for the first
被要求创建 3 个对象,我尝试了不同的方法来生成具有相同值的对象,但使用上面提供的模板时出现错误。我的代码粘贴在下面:
var object1 = {
1: 2,
7: 3,
4: 5
};
var object2 = new Object();
object2['1'] = 2;
object2['7'] = 3;
object2['4'] = 5;
var object3 = new Object();
object3.1 = 2;
object3.7 = 3;
object3.4 = 5;
Code Academy 给了我一个错误,为了弄清楚它到底在哪里,我使用了 Chrome 的控制台。在 Chrome 控制台上单独绑定(bind)每个对象创建,可以创建 object1
和 object2
,但不能创建 object3
,这会产生错误:Uncaught SyntaxError:意外数字
将object3
的代码更改为(将键从数字更改为字符串):
var object3 = new Object();
object3.'1' = 2;
object3.'7' = 3;
object3.'4' = 5;
产生错误:未捕获的语法错误:意外的字符串
是否可以使用此模板/布局创建 object3
来生成 object1
的值,或者键永远不能是数字或字符串?创建 object2
时使用的键是字符串,而不是数字。
最佳答案
使用点表示法时,键的命名方式应与变量相同(以字母或 _ 开头,仅包含字母、数字和 _) .
如果 key 不能用作点表示法,则可以使用括号表示法,如下所示:
obj["key goes here"];
由于 1
、7
和 4
对于点表示法无效,因此将它们用作键的唯一方法如下:obj["4"]
...
这是一个MDN page关于对象的基础知识。
示例:
这些键对于点表示法有效:
abc;
_a;
R2D2;
_;
_0;
a________a;
这些不是:
k-ey;
a b a;
99;
k.e.y;
@@;
关于javascript - 对象属性赋值中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42285452/