js-es6-对象扩展

更简洁的表示法

let a=1;
let obj={a};
console.log(obj)//{a: 1}
const obj={
	fn:function(){
		console.log('old');
	},
	fn2(){
		console.log('new');
	}
}
obj.fn();//old
obj.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);//test
console.log(b);//haha
console.log(c);//{c: "ccc", d: "ddd"}


Object新增的方法

Object.is()用来比较两个值是否严格相等。它与严格比较运算符(===)的行为基本一致,不同之外只有两个:一是+0不等于-0,二是NaN等于自身。

console.log(Object.is(NaN,NaN));//true
console.log(Object.is(+0,-0));//false
Object.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值