【发布时间】:2021-12-07 02:48:09
【问题描述】:
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 的控制台上分别绑定每个对象创建,object1 和 object2 可以创建,但不能创建 object3,这会产生错误:Uncaught SyntaxError: Unexpected number
将object3的代码更改为(将键从数字更改为字符串):
var object3 = new Object();
object3.'1' = 2;
object3.'7' = 3;
object3.'4' = 5;
产生错误:Uncaught SyntaxError: Unexpected string
是否可以使用此模板/布局创建object3 以生成object1 的值,或者键永远不能是数字或字符串?用于创建 object2 的密钥的字符串而非数字。
【问题讨论】:
-
属性名称不能使用“点”语法以数字开头。 object3._1 可以,但是因为下划线(以及 $ 和字母字符)是合法的语法。
标签: javascript object properties