js对象方法(API)详解

hasOwnProperty(propertyName String)

有没办法区分对象的那些属性是自己的,那些是共有
属性(从父对象哪里继承来的)?
hasOwnProperty()是检查指定的属性是不是自有属性的,
如果要检查是共有属性的话,还需要排除没有这个属性 共有属性是指在原型对象中声明的属性
参数:
propertyName String类型指定的属性名称
返回值
hasOwnProperty()函数的返回值为Boolean类型。如果对象object具有名称为propertyName的属性,则返回true,否则返回false。
在这里插入图片描述

Object.keys()

通常我们探索一个对象里的属性时,喜欢使用
hasOwnProperty()方法,其实这个方法很不优雅;
Object.keys(不是Object.prototype.keys )
返回的正是一个对象属性数组
分一下四种情况 :
在这里插入图片描述
在这里插入图片描述

Object.defineProperty(obj,prop,descriptor)

Object.defineProperty()的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性
参数:
obj要在其上定义属性的对象。
prop要定义或修改的属性的名称。
descriptor将被定义或修改的属性描述符。
在这里插入图片描述

Object.getPrototypeOf()

验证原型对象(可以手动改变原型对象,再去检查构造函数,所以不严格)
Object.getPrototypeOf(arr) == Array.proto;判断arr原型是否是Array原型
var bool = fater.isPrototypeOf(child) 判断father是否是child的父对象

在这里插入图片描述

Object.is()

用来比较两个值是否严格相等 基本上和 === 一致,除了以下两种情况
在这里插入图片描述

Object.assign()

用于混合对象,对象的合并,将源对象的所有可枚举(遍历)属性,复制到目标对象,带浅克隆 …ES7
在这里插入图片描述

Object.setPrototypeOf()

设置某个对象的隐式原型 proto
在这里插入图片描述

Object.getOwnPropertyNames()

枚举的顺序,返回一个数组,枚举出来对象的属性
对象的顺序其实是浏览器厂商自行规定
先排数字,升序 再排其他,按照书写顺序、
在这里插入图片描述


版权声明:本文为Orange_Sheep原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。