为对象添加新的属性es5和es6提供的方法,属性表达式,浅拷贝

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’

发布了21 篇原创文章 · 获赞 0 · 访问量 170

猜你喜欢

转载自blog.csdn.net/weixin_40180205/article/details/104830161