JS对象方法
对象检测方法
obj.hasOwnProperty(prop)返回boolean
,prop:要检测的属性的 String 字符串形式表示的名称,或者 Symbol。指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)prototypeObj.isPrototypeOf(object)返回boolean
,测试引用对象是否存在于参数对象的原型链,与instanceof不同,object instanceof AFunction中,object 的原型链是针对 AFunction.prototype 进行检查的obj.propertyIsEnumerable(prop)返回boolean
,检测对象指定的属性是否可枚举Object.is(value1, value2)返回boolean
,判断两个值是否是相同的值,不会隐式转换Object.isExtensible(obj)返回boolean
,判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)Object.isFrozen(obj)返回boolean
,判断一个对象是否被冻结Object.isSealed(obj)返回boolean
,判断对象是否被密封(不可扩展 ,且所有自身属性都不可配置且因此不可删除(但不一定是不可写)的对象
对象属性查看方法
Object.values(obj)返回对象的所有可枚举属性值的数组
,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )Object.keys(obj)返回对象所有可枚举属性的字符串数组
,排列顺序和 for...in 循环遍历时顺序一致Object.entries(obj)返回给定对象自身可枚举属性的键值对数组
,其排列与 for...in 循环遍历时顺序一致Object.fromEntries(iterable)返回一个由该迭代对象条目提供对应属性的新对象
,把键值对列表转换为一个对象,参数:可迭代对象,类似 Array 、Map历时返回的顺序一致(区别于 for-in 循环还会枚举原型链中的属性),浅拷贝obj.toString()返回表示该对象的字符串
,[object Object]object.valueOf()返回该对象的原始值
obj.toLocaleString()返回对象的字符串表示
,方法被用于派生对象为了特定语言环境的目的(locale-specific purposes)而重载使用Object.getOwnPropertyDescriptor(obj, prop)返回指定属性描述对象
,返回指定对象上的一个自有属性对应的属性描述符,prop目标对象的属性名Object.getOwnPropertyDescriptors(obj)返回对象的所有自身属性描述符
,用来获取一个对象的所有自身属性的描述符Object.getOwnPropertyNames(obj)返回对象的所有属性名字符串组成的数组
,返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组Object.getOwnPropertySymbols(obj)返回对象所有Symbol属性的数组
Object.getPrototypeOf(object)返回对象的原型
,返回指定对象的原型(内部[[Prototype]]
属性的值),没有则null
对象属性操作方法
Object.assign(target, ...sources)返回目标对象
,用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象,浅拷贝Object.create(proto[,propertiesObject])返回新对象,带有指定原型对象和属性
,参数1:新对象的原型,参数2:要定义其可枚举属性或修改的属性描述符的对象Object.setPrototypeOf(obj, prototype)返回这个对象
,设置一个指定的对象的原型 ( 即, 内部[[Prototype]]
属性)到另一个对象或 nullObject.preventExtensions(obj)返回不可扩展对象
,让对象变的不可扩展,也就是永远不能再添加新属性Object.freeze(obj)返回冻结的对象
,冻结一个对象。一个被冻结的对象再也不能被修改Object.seal(obj)返回被密封的对象
,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变Object.defineProperties(obj, props)返回参数对象本身
,在一个对象上定义新的属性或修改现有属性,并返回该对象,参数2:要定义其可枚举属性或修改的属性描述符的对象Object.defineProperty(obj, prop, descriptor)返回参数对象
,参数2:定义或修改的属性名,参数3:对应的属性描述符。直接在一个对象上定义一个新属性,或者修改一个对象的现有属性
对象原型方法
- obj.hasOwnProperty()
- prototypeObj.isPrototypeOf()
- obj.propertyIsEnumerable()
- obj.toLocaleString()
- obj.toString()
- object.valueOf()