对象方法的语法

时间:2016-01-14 20:33:55

标签: javascript

我总是这样定义methods in objects

{
  a: function(par1, par2) { },
}

但最近我看到了这一点(我认为这是等效的,但我不确定):

{
  a(par1, par2) { },
}

什么时候引入了这种语法?

3 个答案:

答案 0 :(得分:2)

您所指的是ES6 Extended Object Literal支持的一部分。

你认为你的两个例子在功能上是等价的是正确的。

答案 1 :(得分:1)

它是ES6语法,速记和功能相同。

MDN - Method definitions

答案 2 :(得分:1)

是的, 这是新的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) {}
}

祝你好运

叶戈尔