Object这个类是所有类的父类,方法和属性,所有的对象都可以使用.
(一)原型方法(实例方法和属性)
(1)hasOwnProperty(判断当前对象是否具备这个属性 不会读取原型)
personl.isPrototypeOf(son) ---> true
(2)isPrototypeOf(判断当前对象是否处在传入对象的原型链上)
判断当前对象是否存在传入对象的原型链(__proto__)上.
(3).propertyIsEnumerable 判断当前属性是否可以枚举
可枚举即可遍历
(4).toLocaleString 格局本地格式转为字符串 toString 转为字符串
(5).valueOf 提取对应的value值
(二)原型属性
constructor 指向当前对象的构造函数 __proto__ 对象隐式原型.
(三)静态方法(Object 方法调用的)
(1).Object.is 判断两个对象是否是一个对象.
Object.is(NaN,NaN) //true !!!
(2).assign 浅拷贝
将后面对象的内容拷贝到前面这个对象里返回前面这个对象.
(3).create 根据传入的内容创建相关的对象
(4).原生js实现Object.create
(5).fon in 遍历对象 for of 遍历对应的迭代器
Object.keys(obj) 将可枚举的key全部加入到一个迭代器返回
Object.values(obj) 将value全部加入到一个迭代器返回
Object.entries(obj) 将它键值队全部加入到一个迭代器返回
(6).getPrototypeOf 获取原型 setPrototypeOf 设置原型
(7).freeze 冻结(只能查询),isFrozen,是否冻结. seal 密封(只能查询和修改 不能删除和添加新的属性) isSealed 是否密封 preventExtensions 不可扩展(不能添加新的属性)
(8).
(9).属性对象 defineProperty 定义单个属性
10.访问器属性 对已经存在的属性进行访问
(四).for in 和 Object.keys 和 Object.getOwnProertyNames的区别
for in 包含继承的属性及自身的属性 (不包含不可枚举的属性)
Object.keys 只包含自身的属性 (不包含继承的和不可枚举的属性)
Object.getOwnProertyNames 包含自身的属性 包含不可枚举的(不包含继承的)
三个内容都不包含symbol的属性
(五).原型方法重点 hasOwnProperty isPropertypeOf
Object是所有类的父类 所以他的原型方法及属性所有的类都拥有
Object的静态方法是为所有的对象服务的 里面的参数都是对象
defineProperty和观察者模式是vue2的底层 (实现vue2的双向数据绑定)