1 为对象添加新的属性
2 在es6使用属性表达式为对象添加新的属性的时候注意不能是对象,不然就会出现后面的对象会覆盖前面对象的情况
3 利用浅拷贝实现为对象添加新得属性
//es5给对象添加新的属性
let one = {
name: 'zs',
age: 18
}
one.father = 'hsh'
console.log(one); //{name: "zs", age: 18, father: "hsh"}
//es6给对象添加属性表达式
let propKey = 'foo'
let obj = {
[propKey]: one,
['a' + 'bc' + 'abc']: 123
}
console.log(propKey); //foo
console.log(obj); //{foo: {…}, abcabc: 123}
console.log(obj.foo); //{name: "zs", age: 18, father: "hsh"}
console.log(obj.abcabc); //123
//不能给两个对象使用属性表达式,不然就会出现后面的对象覆盖前面的对象的情况
let two = { a: 1 }
let three = { b: 2 }
let four = {
[two]: 'aa',
[three]: 'bb'
}
console.log(four.two); //underfined
console.log(four.three); //underfined
console.log(four); //{[object Object]:"bb"}
//利用浅拷贝得方法为对象添加新的属性名称
class One {
constructor(x, y) {
Object.assign(this, { x, y })
}
}
var pp = new One(‘a’,‘b’)
console.dir(pp); //x:‘a’ y:‘b’