<分区>
当我在 javascript 控制台中键入此代码时,它不会出现错误,而是会运行。
var a = {
b:"123",
update(){
console.log("hello");
}
}
问题是,update()
没有函数关键字,当我检查对象 a
的属性时,我得到:
b: "123"
update: function ()
__proto__: Object
javascript 实际上在这里做什么?
<分区>
当我在 javascript 控制台中键入此代码时,它不会出现错误,而是会运行。
var a = {
b:"123",
update(){
console.log("hello");
}
}
问题是,update()
没有函数关键字,当我检查对象 a
的属性时,我得到:
b: "123"
update: function ()
__proto__: Object
javascript 实际上在这里做什么?
最佳答案
在 ECMA Script 6 中,您可以在对象创建期间定义其属性,无需 :
。
例如,
var data = 100;
var a = { data };
console.log(a);
// { data: 100 }
同样,在您的情况下,您正在创建两个属性,一个称为 b
,另一个称为 update
,其中 b
是100 和 update
实际上是一个名为 update
的函数对象。
阅读更多相关信息 here
注意:这只是 ECMA Script 6 中引入的简写符号。您仍然可以使用 ECMA Script 5 的方式创建函数属性,如下所示
var a = {
b: "123",
update: function update() {
console.log("hello");
}
}
关于javascript - 为什么这段代码在 javascript 中运行?对象内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429603/