Object常用方法总结
1.Object.assign()
-该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性(不拷贝原型上的属性),Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。同名属性会替换.Object.assign只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制.Object.assign可以用来处理数组,但是会把数组视为对象。
/* 对象 */
function Person(name) {
this.name = name
};
Person.prototype.country = 'china';
let p = new Person("张三");
p.age = 29;
const obj = { name: 'zhang' };
Object.assign(obj, p)
console.log(obj);//{name: '张三', age: 29} name被覆盖 原型上面的不拷贝
/* 数组 */
let arr = [4,5,6,7,8]
Object.assign(arr,[1,2,3]) // 把数组当作对象来处理
console.log(arr); //[1, 2, 3, 7, 8]
2. Object.freeze()
-该方法可以用来冻结一个对象, 冻结后的对象不会在被修改,不能对这个对象进行添加新属性, 不能删除已有属性, 不能修改该对象已有属性的可枚举性,可配置性, 可写性. 此外冻结一个对象后该对象的原型也不能进行修改. freeze() 返回和传入的参数相同
let obj = {
name:"张三",
age:18
}
Object.freeze(obj)
delete obj.age
obj.id="001"
obj.name="李四"
console.log(obj);//{name: '张三', age: 18}
浙公网安备 33010602011771号