在 JavaScript 对象中定义函数的简写

Raj*_*amy 2 javascript

不小心写了如下代码,

var x = {hai:10,test(){ alert("I am alive")}};
x.test(); //alerting the value
Run Code Online (Sandbox Code Playgroud)

它工作正常,我想知道这段代码是如何工作的?因为它以前被认为是无效的语法。而且我知道,在 中ECMAscript 6,已经引入了分配属性的简写。

例子:

var x = 5, y = {x};  // is as same as var x=5,y={x:x};
Run Code Online (Sandbox Code Playgroud)

但我不确定函数定义。任何人都可以用文档中的证据来解释它吗?

Tho*_*mas 5

这是 ES2015 附带的功能。您可以跳过方法定义的函数关键字(不适用于普通函数)。
So{ doSth(){/*...*/ } }只是一个简写{ doSth: function(){/*...*/ } }

参考:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions