javascript - 为什么这段代码在 javascript 中运行?对象内部函数

标签 javascript function object ecmascript-6

<分区>

当我在 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/

相关文章:

javascript - 在 d3 中选择一个形状的兄弟

javascript - IE10 在文档打开后但在文档写入之前执行功能问题?

c++ - 向cpp中的函数发送参数

c++ - 在 C++ 函数中通过引用返回的目的是什么?

javascript - 由于某种原因,使用过滤器过滤对象数组不起作用

c++ - 访问由对象 A 创建的对象 B 中的对象 C 的方法

javascript - 显示与数组值匹配的不同按钮

javascript - 导入中的 linting 错误

c - 函数指针和函数地址

javascript - 如何使用函数的参数来使用对象的数据?