ES6 对象扩展
2017-12-12 11:00
253 查看
1、属性和变量可以简写
2、Object.is
它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
不同之处只有两个:一是
3、Object.assign
注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
说明:
(1)浅拷贝
(2)同名属性的替换
(3)用途
为属性指定默认值
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对象知识扩展(ECMAScript 6 入门笔记)
- es6 javascript对象的扩展运算符
- ES6 - Note3:数组、对象与函数的扩展
- ES6学习——新的语法:对象字面量扩展(Object Literal Extensions)
- ES6(八: 对象扩展)
- ES6之对象字面量扩展语法(Enhanced Object Literals)
- ES6对象的扩展
- js-es6-对象扩展
- es6 对象的扩展运算符
- ES6-对象的扩展-属性的可枚举性和遍历
- ES6-对象的扩展-_proto_ 属性,Object.setPrototypeOf(),Object.getProtitypeOf()
- 【读书笔记】【深入理解ES6】#4-扩展对象的功能性
- ES6(vue)对象词法扩展
- ES6-对象的扩展-super关键字
- ES6学习——新的语法:对象字面量扩展(Object Literal Extensions)
- 07、ES6 对象的扩展