【问题标题】:Object Literal Property Value Shorthand对象文字属性值速记
【发布时间】:2016-12-13 15:54:35
【问题描述】:

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

function FF(constructorArg) {
   var _privateName = constructorArg;

   var publicMessage = "Hello StackOverflow";

   function publicMethodGetName() {
      return _privateName;
   }

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

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

 return { publicMethodGetName, publicMessage };

它仍然有效。

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

【问题讨论】:

  • 这是 ES6,它不能在旧 JS 引擎(旧浏览器等)上原生运行。见ariya.io/2013/02/…

标签: javascript ecmascript-6 properties key shorthand


【解决方案1】:

这是定义对象字面量属性的简写语法,由 ECMAScript2015(又名 ES6)引入。唯一可能的问题是环境支持。环境应该支持这个特性。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-13
      • 2014-11-24
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多