调用
通过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的原型链上