javascript中Object对象常用方法总结

1.Object.create

Object.create的语法:Object.create(proto, [ propertiesObject ]) ,创建一个对象,新创建的对象的prototype指向第一个参数,第二个参数是为新创建对象添加属性

  • proto是原型对象
  • propertiesObject是属性的配置

在详解Object.create之前,我们先回忆一下常用的创建对象的方法: 1.{},2.new Object();

1,2除了能不能传参数的区别外,基本没其它区别。 但是它们跟Object.create的区别可就大了,接下来我们分析下用new创建对象跟用Object.create的区别:

先了解下new一个对象都做了哪些操作:

  1. 创建一个新对象
  2. 将新对象的原型指向构造函数的原型
  3. 执行构造函数,绑定this
  4. 返回这个对象

例://new Person()  //Person是一个构造函数

var obj=new Object()

obj.__proto__ = Person.prototype

var res = Person.call(obj)

return res instanceof Object ? res : obj

 

例://Object.create(Person)

var f = function() {}

f.prototype=Person

return nee f();

从上可以看出Object.create(Person)创建的对象,并没有去调用Person的构造函数,因此,此时创建的对象不会继承Person自身的属性

 

2.Object.keys(obj)

发方法主要用来枚举给定对象的key,如var a=[1,2,3],  枚举a的结果就是:["0", "1", "2"], 它与for in的区别在于,Object.keys不会遍历到该对象的原型链上去。

 

3.Object.assign(target,source1,source2,...)

该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性。

该方法合并的操作是浅拷贝,并不是深拷贝,他只能对值进行复制。特别要注意的是,该方法处理数组时,会把数组当成对象来处理

Object.assign([1, 2, 3], [4, 5]) // 把数组当作对象来处理

//结果 [4, 5, 3]

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值