为什么可以';Javascript中的另一个对象初始值设定项中是否有一个对象初始值设定项?
我有下面的代码,想知道为什么不允许我在另一个对象中创建另一个对象 代码为什么可以';Javascript中的另一个对象初始值设定项中是否有一个对象初始值设定项?,javascript,Javascript,我有下面的代码,想知道为什么不允许我在另一个对象中创建另一个对象 代码 //Object initializer var shoe = { size: 10, make: var maketype = { this.brand: "rebook" }, availability: "now" } 你可以做得很好。额外的var maketype=
//Object initializer
var shoe = {
size: 10,
make: var maketype = {
this.brand: "rebook"
},
availability: "now"
}
你可以做得很好。额外的
var maketype=
是非法的(并且this
作为属性名的一部分)
这项工作:
var shoe = {
size: 10,
make: {
brand: "rebook"
},
availability: "now"
}
如果要保留对make
的单独引用,可以这样做:
var maketype = { brand: "reebok" },
shoe = {
size: 10,
make: maketype,
availability: "now"
}
如果我删除
var
我会得到错误SyntaxError:Unexpected token.
在this.brand:“rebook”
@PeanutsMonkey:这个
在该上下文中也是非法的。编辑以澄清。所以我不能在对象初始值设定项中使用此?这是否意味着此
仅限于构造函数?@PeanutsMonkey:Yes和no(它可用于所有函数,也可用于全局上下文)。请参见@PeanutsMonkey-此
是执行上下文的只读属性,它始终有一个值。在ECMAScript Ed 3中,它总是引用一个对象,在ES5严格模式下,它可能是null
或未定义的。您可以通过调用函数的方式(即,在进入执行上下文时)设置它的值,但一旦进入执行上下文,就不能更改它。因此,在全局代码中,<>代码> 总是引用全局对象。考虑使用JavaScript验证器,例如。您的代码根本无效。@不是吗?我已经运行了我的代码,但我从错误列表中永远不会知道var
和此
在对象初始值设定项中使用是非法的“预期标识符,而不是看到了'var'”…似乎非常直截了当。无论如何,验证器是非常有用的。@我不是吗?可能我对Javascript的世界比较陌生,不理解“预期的标识符,相反,看到'var'
将等同于使用它是非法的。但将来肯定会使用jshint.com来测试我的代码。