【发布时间】:2016-04-20 08:18:58
【问题描述】:
我一直这样定义methods in objects:
{
a: function(par1, par2) { },
}
但最近我看到了这个(我认为这是等效的,但我不确定):
{
a(par1, par2) { },
}
这种语法是什么时候引入的?
【问题讨论】:
标签: javascript
我一直这样定义methods in objects:
{
a: function(par1, par2) { },
}
但最近我看到了这个(我认为这是等效的,但我不确定):
{
a(par1, par2) { },
}
这种语法是什么时候引入的?
【问题讨论】:
标签: javascript
您所指的是ES6 Extended Object Literal 支持的一部分。
假设您的两个示例在功能上是等效的,这是正确的。
【讨论】:
它是 ES6 语法,简写,功能相同。
【讨论】:
是的, 这是新的 ES6 方式
老办法
var obj = {
foo: function() {},
bar: function() {}
};
新方式
通常你可以使用旧语法,新语法是可选的,但会短一些
var obj = {
foo() {},
bar() {}
};
当你做类似的事情时最好跳过重复
function method(){};
return {
method: method
};
它可能看起来像
return {
method
};
你可以在 es6 类定义中找到相同的语法
class MyClass {
constructor(geometry, materials) {}
update(camera) {}
get boneCount() {}
set matrixType(matrixType) {}
}
最好的问候
叶戈尔
【讨论】: