Object常用方法总结

本文总结了JavaScript中Object的多个重要方法,包括Object.assign()的浅拷贝特性,Object.create()用于创建新对象,defineProperties()和defineProperty()定义及修改属性,keys()、values()和entries()获取对象属性,hasOwnProperty()检查属性,isPrototypeOf()验证原型链,setPrototypeOf()设置原型,is()判断值相等,freeze()和preventExtensions()分别用于对象的冻结和防止扩展。
摘要由CSDN通过智能技术生成

1、Object.assign(target,source1,source2,…)

该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性。
Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。同名属性会替换。
Object.assign只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制。
Object.assign可以用来处理数组,但是会把数组视为对象。

const target = {
    x : 0, y : 1}
const source = {
    x : 1, z : 2, fn : {
    number: 2}}
console.log(Object.assign(target,source))
// target { x : 1, y : 1, z : 2, fn : { number: 2}}  同名属性会被覆盖
target.fn.nubmer = 3
console.log(source) 
// source { x : 1, y : 1, z : 2, fn : { number: 3}}  拷贝为对象应用
function Person(){
   
  this.name = 1
};
Person.prototype.country = 'china';
var student = new Person();
student.age = 29 ;
const young = {
   name : 'zhang'};
Object.assign(young,student);
// young {name : 'zhang', age : 29}               // 只能拷贝自身的属性,不能拷贝prototype
Object.assign([1, 2, 3], [4, 5])                      // 把数组当作对象来处理
// [4, 5, 3]

2.Object.create(prototype,[propertiesObject])

使用指定的原型对象及其属性去创建一个新的对象

var parent = {
    x: 1, y: 2}
var child = Object.create(parent,{
   
  z : {
                              // z会成为创建对象的属性
    writable:true,
    configurable:true,
    value: "newAdd"
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值