ES6 对象扩展

Posted web前端开发技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 对象扩展相关的知识,希望对你有一定的参考价值。

1、属性和变量可以简写

let birth = ‘2000/01/01‘;

const Person = {

  name: ‘张三‘,

  //等同于birth: birth
  birth,

  // 等同于hello: function ()...
  hello() { console.log(‘我的名字是‘, this.name); }

};

2、Object.is

它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。

不同之处只有两个:一是+0不等于-0,二是NaN等于自身。

+0 === -0 //true
NaN === NaN // false

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

3、Object.assign

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。

const target = { a: 1, b: 1 };

const source1 = { b: 2, c: 2 };
const source2 = { c: 3 };

Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}

说明:

(1)浅拷贝

const obj1 = {a: {b: 1}};
const obj2 = Object.assign({}, obj1);

obj1.a.b = 2;
obj2.a.b // 2

(2)同名属性的替换

(3)用途

为属性指定默认值

const DEFAULTS = {
  logLevel: 0,
  outputFormat: html
};

function processContent(options) {
  options = Object.assign({}, DEFAULTS, options);
  console.log(options);
  // ...
}

 

以上是关于ES6 对象扩展的主要内容,如果未能解决你的问题,请参考以下文章

ES6 对象的扩展

ES6 - 对象扩展(增强字面量)

es6~扩展运算符后续

es6数组的扩展

ES6正则扩展

函数的扩展--ES6