ES6语法——对象扩展

对象扩展
函数新增特性
  • 简洁表示法
  • 属性表达式
  • 扩展运算符
  • Object新增方法
{
	//简洁表示法
	let o=1;
	let k=2;
	let es5 = {
		o:o,
		k:k
	}
	let es6 = {
		o,
		k
	}
	console.log(es5,es6)//{o:1,k:2} {o:1,k:2}
	let es5_method={
		hello: function(){
			console.log('hello')
		}
	}
	let es6_method={
		hello(){
			console.log('hello')
		}
	}
	console.log(es5_method.hello(),es6.method.hello())//hello,hello
}
{
	//属性表达式
	//es6中属性表达式的key值可以是变量也可以是表达式
	let a = 'b';
	let es5_obj={
		a: 'c',
		b: 'c'
	}
	let es6_obj={
		[a]:'c'//[]内的就是一个变量//相当于b:'c'
	}
	console.log(es5_obj,es6_obj)//{a:'c',b:'c'} {b:'c'}
}
{
	//Object新增方法
	
	//is API 判断对象是否相等 作用类似于 ===
	console.log('字符串',Object.is('abc','abc'),'abc'==='abc')
	//true true
	console.log('数组',Object.is([],[]),[]===[])
	//false false 
	//值上都是空数组,但指向不同但内存
	
	//assign API 浅拷贝 
	//assign API 只拷贝自身属性,不拷贝继承属性和不可枚举属性
	//浅拷贝:只拷贝引用地址
	//深拷贝: 把值都拷贝过去
	console.log('拷贝',Object.assign({a:'a'},{b:'b'}));
	//目标对象
	//被拷贝
	//{a:'a',b:'b'}

	//entries API
	let test = {k: 123, o:456}
	for(let [key,value] of Object.entries(test)){
		console.log([key,value])
	}
	//[k:123]
	//[o:456]

	//扩展运算符 需要babel-polyfill做兼容
	let {a,b,...c} = {a:'test',b:'kill',c:'dd',d:'cc'}
	//a={a:'test'}
	//b={b:'kill'}
	//c={
			c:'dd',
			d:'cc'
		}

	
}
{
	//
}
{
	//
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值