Es6-features 讀書心得

Object initializer

  • shorthand property names
var a = "foo", b = 42, c = {};
var o = { a, b, c };
var a = "foo", b = 42, c = {};
var o = { a: a, b: b, c: c };
  • Shorthand method names
var o = {
  property([parameters]) {},
  get property() {},
  set property(value) {},
  * generator() {}
};
var o = {
  property: function ([parameters]) {},
  get property() {},
  set property(value) {},
};
  • Computed property names
var prop = "foo";
var o = {
  [prop]: "hey",
  ["b" + "ar"]: "there",
};
var _o;

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 prop = "foo";
var o = (_o = {}, _defineProperty(_o, prop, "hey"), _defineProperty(_o, "b" + "ar", "there"), _o);