Object构造函数及其方法

102 阅读2分钟

调用

通过new Object()/Object()调用的返回值

  • 不传参、null、undefined时,均返回空对象{}
  • 传入基础数据类型时,会返回该基础数据类型的包装类对象
  • 传入引用数据类型时,会返回该引用数据

静态方法

Object.assign

Object.assign(target, source1, source2...)可将多个源对象source的自有且可枚举属性浅拷贝到目标对象target,返回目标对象target。若有相同的属性,则最后面的源对象属性会覆盖前面相同的属性。

Object.create

Object.create(prototype, propertiesObject)返回以prototype为原型的新对象,该对象含有propertiesObject中的属性即属性描述。

Object.defineProperty

Object.defineProperty(obj, prop, descreptor)为obj对象新增/修改prop属性,并为该属性定义属性描述符,返回obj对象。

属性描述符有两种类型:数据描述符(value,writable)和存取描述符(set,get)。

两种描述符都是对象,都有两个可选属性:configurable和enumerable,默认值均为false。

configurable为true时,该属性的描述符才可被更改,且能被delete删除

enumerable为true时,该属性为可枚举属性

writable为true时,value才能被更改,默认为false

value为属性值,默认为undefined

get:读取属性时,会触发get函数,没有参数,该函数的返回值作为属性的值,默认为undefined

set:设置属性时,会触发set函数,接收新值作为参数,没有返回值,默认为undefined

Object.entries

Object.entries(obj)返回一个对象自身可枚举属性以[key, value]的数组,结果可转Map

Object.keys

Object.keys(obj)返回一个对象自身可枚举属性的数组,使用Object.getOwnPropertyNames(obj)可返回包含自身不可枚举属性

Object.values

Object.values(obj)返回一个对象自身可枚举值的数组,而for in 可遍历原型链上的可枚举值

Object.prototype.toString.call

返回'[object Type]',注意Type首字母大写

实例方法

obj.hasOwnProperty

obj.hasOwnProperty(prop)obj对象的自身可枚举属性是否含有prop,返回boolean值

obj.isPrototypeOf

prototypeObj.isPrototypeOf(obj)判断prototypeObj是否在obj的原型链上

instanceof

instance instanceof construct 判断construct的prototype是否在instance的原型链上