对象文字 属性 值 Shorthand

Object Literal Property Value Shorthand

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

function FF(constructorArg) {
   var _privateName = constructorArg;

   var publicMessage = "Hello Whosebug";

   function publicMethodGetName() {
      return _privateName;
   }

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

但是,我刚刚注意到我可以将 return 简化为以下内容:

 return { publicMethodGetName, publicMessage };

它仍然有效。

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

这是ECMAScript2015 (a.k.a.ES6)引入的定义对象字面量属性的shorthand语法。唯一可能的问题是环境支持。环境应该支持这个特性。

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

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