javascript - 对象属性赋值中的语法错误

标签 javascript object properties

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)每个对象创建,可以创建 object1object2,但不能创建 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"];

由于 174 对于点表示法无效,因此将它们用作键的唯一方法如下: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/

相关文章:

JavaScript - 全局命名空间、窗口或什么都没有?

javascript - 为什么在 javascript 数组中自动创建索引?

带有二进制文件的 Git SVN

python - python 的日期时间模块中缺少属性

javascript - 关闭弹出窗口后如何重新加载现有页面

javascript - 我们如何在 jQuery $.each 方法中逐一追加具有淡入效果的元素列表

javascript - Parse.com Cloud Code 上的多对多关系

java - 如何将 ArrayList 数据追加到类对象中

arrays - Swift - 按另一个数组的属性对对象数组进行排序

java - Properties.propertyNames() 以相反的顺序返回 Enumeration - 为什么?