js assign

360 阅读1分钟

现需要在js中,使用一个新的对象的值覆盖旧有对象,js中有一个方法: Object.assign(target,…sources) 当target和sources对象中有相同的key时,在target对象中的值会被后面source对象的值覆盖。

var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 };

var obj = Object.assign(o1, o2, o3); console.log(obj); // { a: 1, b: 2, c: 3 } console.log(o1); // { a: 1, b: 2, c: 3 }, target对象自身会被修改

如果想要避免o1被改变,需要这样写:

var obj = Object.assign({},o1,o2,o3);//给一个空对象作为target,这样改变的是空对象 console.log(obj);// { a: 1, b: 2, c: 3 } console.log(o1); // { a: 1}

  1. 静态方法和属性

静态方法只能写在class内,constructor外。通过static关键字声明

静态属性只能写在class外,通过 类名.属性名 = 属性值 声明