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

纵饮孤独 提交于 2019-11-26 12:23:11

 

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");
});

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!