js-es6-对象扩展
来源:互联网 发布:linux 重定向 2 1 编辑:程序博客网 时间:2024/04/30 12:12
更简洁的表示法
let a=1;let obj={a};console.log(obj)//{a: 1}
const obj={fn:function(){console.log('old');},fn2(){console.log('new');}}obj.fn();//oldobj.fn2();//new
属性表达式
let a='b';let obj={[a]:'c'}console.log(obj);//{b: "c"}
方法的name属性
函数的name属性,返回函数名。对象方法也是函数,因此也有name属性
let person = { sayName: function() { console.log(this.name); }}let s1 = person.sayName.name; // "sayName"console.log(s1);
扩展运算符
let {a,b,...c}={a:'test',b:'haha',c:'ccc',d:'ddd'};console.log(a);//testconsole.log(b);//hahaconsole.log(c);//{c: "ccc", d: "ddd"}
Object新增的方法
Object.is()用来比较两个值是否严格相等。它与严格比较运算符(===)的行为基本一致,不同之外只有两个:一是+0不等于-0,二是NaN等于自身。
console.log(Object.is(NaN,NaN));//trueconsole.log(Object.is(+0,-0));//falseObject.assign()用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出TypeError错误 (浅拷贝)
var obj1={};var obj2={a:'1'};var obj3={b:'2'};Object.assign(obj1,obj2,obj3);console.log(obj1);//{a: "1", b: "2"}
如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。
var target1 = { a: 1, b: 1 };var source1 = { b: 2, c: 2 };var source2 = { c: 3 };Object.assign(target1, source1, source2);console.log(target1);//{a: 1, b: 2, c: 3}
Object.assign只拷贝自身属性,不可枚举的属性(enumerable为false)和继承的属性不会被拷贝。
属性名为Symbol值的属性,也会被Object.assign拷贝。
对于嵌套的对象,Object.assign的处理方法是替换,而不是添加。var target = { a: { b: 'c', d: 'e' } }var source = { a: { b: 'hello' } }Object.assign(target, source);console.log(target);// { a: { b: 'hello' } }console.log(Object.assign([1, 2, 3], [4, 5])); // [4,5,3]
Object.entries() 遍历对象
let obj={name:'haha',age:20}for(let [key,value] of Object.entries(obj)){console.log([key,value]);// ["name", "haha"]// ["age", 20]}
阅读全文
0 0
- js-es6-对象扩展
- ES6-Math对象扩展
- ES6对象的扩展
- ES6 对象扩展
- ES6对象扩展
- 【es6】对象的扩展
- ES6 — 对象扩展
- ES6对象扩展
- ES6对象扩展
- ES6--对象的扩展
- ES6对象扩展
- ES6(八: 对象扩展)
- ES6对象扩展
- ES6对象的扩展
- js-es6-数值扩展
- js-es6-数组扩展
- js-es6-函数扩展
- ES6-Array对象的扩展
- C语言 java 解一元二次方程
- PHP解决时区问题
- codeforces 716A
- LeetCode BackPack 背包问题
- CCF 分蛋糕(Java)
- js-es6-对象扩展
- 修复Ubuntu引导
- 103总结
- POJ 1410 Intersection
- 洛谷 P1186 玛丽卡
- Differential Privacy brief introduction
- Python:文件的读取、创建、追加、删除、清空
- 日期类的实现(其中包括构造函数,拷贝构造,赋值运算符重载,输出运算符重载,友元函数等等)
- 坚持#第201天~云计算的基础