ES2015允许使用表达式作为属性名。
defineProperty
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");
});