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
。
答案 0 :(得分:2)
使用点符号时,键的名称应与变量的名称相同(以字母或_开头,仅包含字母,数字和_ )
如果密钥无效用作点表示法,则可以使用括号表示法来使用它:
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;
@@;