(二)12.对象扩展19-08-09
2019-08-09 本文已影响0人
你坤儿姐
- 简洁表示法
{
//简洁表示法
let o=1;
let k=2;
let es5={
o:o,
k:k
};
let es6={
o,
k
};
console.log(es5,es6);
let es5_method={
hello:function(){
console.log('hello');
}
};
let es6_method={
hello(){
console.log('hello');
}
}
console.log(es5_method.hello(),es6_method.hello());
}
打印结果:
{o: 1, k: 2}k: 2o: 1__proto__: Object
{o: 1, k: 2}k: 2o: 1__proto__: Object
hello
hello
undefined undefined
- 属性表达式
{
// 属性表达式
let a='b';
let es5_obj={
a:'c',
b:'c'
};
let es6_obj={
[a]:'c'
};
console.log(es5_obj,es6_obj);
}
打印结果:
屏幕快照 2019-08-09 13.58.29.png
- Object新增API
{
//Object is方法
//判断字符串是否相等,is方法和===是一样的
console.log('字符串',Object.is('abc','abc'),'abc'==='abc');
console.log('数组',Object.is([],[]),[]===[]);
//两个数组虽然是空,但指针引用的是不同的地址 严格意义上并不相等
//拷贝 这个拷贝是浅拷贝 只拷贝对象自身的属性如果这个对象还有继承不拷贝继承属性 同事也不会拷贝不可枚举的属性
console.log('拷贝',Object.assign({a:'a'},{b:'b'}));//拷贝后合并成一个对象
//entries
let test={k:123,o:456};
for (let [key,value] of Object.entries(test)){
console.log([key,value]);
}
}
打印结果:
字符串 true true
数组 false false
拷贝 {a: "a", b: "b"}
(2) ["k", 123]
(2) ["o", 456]
- 扩展运算符