Babel编译:动态计算的属性名

ES2015允许使用表达式作为属性名。

编译前:

const HELLO = 'hello';

let dog = {
  [HELLO](){
   console.log('hello'); 
  }
}

编译后:

"use strict";

// 对象添加属性
function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true, // 可枚举
      configurable: true, // 可配置
      writable: true // 可写
    });
  } else {
    obj[key] = value;
  }
  return obj;
}

var HELLO = "hello";

// 创建对象
var dog = _defineProperty({}, HELLO, function() {
  console.log("hello");
});
原文地址:https://www.cnblogs.com/sea-breeze/p/11319909.html