对象文字属性值简写

时间:2016-08-07 23:50:46

标签: javascript

在创建JavaScript工厂函数时,我被告知返回语法如下所示:

function FF(constructorArg) {
   var _privateName = constructorArg;

   var publicMessage = "Hello StackOverflow";

   function publicMethodGetName() {
      return _privateName;
   }

   return {
      publicMethodGetName: publicMethodGetName,
      publicMessage: publicMessage
   };
}

但是,我刚刚注意到我可以简化返回以下内容:

 return { publicMethodGetName, publicMessage };

它仍然有效。

使用这种更简单的语法是否有任何意想不到的副作用,或者它可以使用吗?

2 个答案:

答案 0 :(得分:2)

这是ECMAScript2015(a.k.a.ES6)引入的定义对象文字属性的简写语法。唯一可能的问题是环境支持。环境应该支持此功能。

为了支持基于ES5的环境,您可以使用ES6转换程序并将代码转换为ES5。

答案 1 :(得分:1)

这是新的es6语法。除非您编译为es5,否则只有一些浏览器会支持它。请参阅兼容性表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer