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()
枚举的顺序,返回一个数组,枚举出来对象的属性
对象的顺序其实是浏览器厂商自行规定
先排数字,升序 再排其他,按照书写顺序、