Skip to content

实际应用 ​

本节目标:理解“实际应用”的核心思路,并能把它用于实际开发或面试表达。

**函数返回值简写**
function getPoint() {  const x = 1;  const y = 10;  return {x, y};}
getPoint()// {x:1, y:10}
**CommonJS** **模块输出一组变量**
let ms = {};
function getItem (key) {  return key in ms ? ms[key] : null;}
function setItem (key, value) {  ms[key] = value;}
function clear () {  ms = {};}
module.exports = { getItem, setItem, clear };// 等同于module.exports = {  getItem: getItem,  setItem: setItem,  clear: clear};
属性的赋值器(setter)和取值器(getter),事实上也是采用这种写法。
const cart = {  _wheels: 4,
get wheels () {    return this._wheels;  },
set wheels (value) {    if (value < this._wheels) {      throw new Error('数值太小了!');    }    this._wheels = value;  }}
**打印对象**
let user = {  name: 'test'};
let foo = {  bar: 'baz'};
console.log(user, foo)// {name: "test"} {bar: "baz"}console.log({user, foo})// {user: {name: "test"}, foo: {bar: "baz"}}
上面代码中,console.log直接输出user和foo两个对象时,就是两组键值对,可能会混淆。把它们放在大括号里面输出,就变成了对象的简洁表示法,每组键值对前面会打印对象名,这样就比较清晰了。
**注意**
简写的对象方法不能用作构造函数,会报错。
const obj = {  f() {    this.foo = 'bar';  }};
new obj.f() // 报错
上面代码中,f是一个简写的对象方法,所以obj.f不能当作构造函数使用。

本站总访问 — 次