Skip to content

ES6 对象的扩展

Published: at 08:00 AM

对象的扩展

ES6 允许直接写入变量和函数,作为对象的属性和方法,这样的书写更加简洁。

属性简写

var foo = "bar";
var baz1 = { foo };
console.log(baz);

// 等同于
var baz2 = { foo: foo };
console.log(baz);

返回值简写

// demo2
function f(x, y) {
  return { x, y };
}

// 旧的写法
function f1(x, y) {
  return { x: x, y: y };
}

f(1, 2);

方法简写

var o1 = {
  method() {
    return "hello";
  },
};

// 等同于
var o2 = {
  method: function () {
    return "hello";
  },
};

// 实例
var birth = "2016/11/7";
var person = {
  name: "tom",
  birth,
  hello() {
    console.log("name is", this.name);
  },
};

调整CommonJS模块输出变量写法

// 可以据此修改项目的common.js,以及require的return方法
var ms = {};
function getItem(key) {
  return key in ms ? ms[key] : null;
}

function setItem(key, value) {
  ms[key] = value;
}

function clear() {
  ms = {};
}
model.exports = { getItem, setItem, clear };
// 等同于
model.exports = {
  getItem: getItem,
  setItem: setItem,
  clear: clear,
};