一丶Object顶级原型中的方法
hasOwnProperty---判断对象中是否具有某个自带的属性
语法:对象.hasOwnProperty(属性名) 返回布尔值
isPrototypeOf --- 判断对象a是否在对象b的原型链上 返回布尔值
语法: 对象a.isPrototypeOf(对象b)
propertyIsEnumerable --- 判断某个属性是否能遍历
语法: 对象.propertyIsEnumerable(属性名) 返回布尔值
toString --- 将对象转为字符串
语法: 对象.toString() 返回 '[object Object]'
defineProperties --- 属于Object构造函数的方法 用于给对象设置属性
语法: Object.defineProperties(对象,{对象键值对的描述}) 返回处理后的对象
valueof --- 用于查看对象的具体的值
语法: 对象.valueof()
toLocaleString---给不同的数据调用会得到不同的数据
数字调用可以将数字进行千分位分割
二丶Object方法
assign --- 将一个对象中可遍历的属性复制到另一个目标对象中,返回目标对象
语法: var 新目标对象 = Object.assign(原目标对象,被复制的对象)
create --- 创建对象
语法: Object.create(原型, 设置属性的对象) - 返回对象
设置一个空对象把对象的值放到原型中
defineProperty --- 监视对象属性的
当对象属性的值被修改时,可以监视到,访问对象属性的值的时候,可以监视到
语法:Object.defineProperty(对象,属性名,{
get(){ 当访问这个对象的属性的时候会先触发这个函数
}
set(){ 当修改这个对象的属性的时候会先触发这个函数
}
})
entries --- 将对象中可遍历的键值对组成数组并返回
语法: Object.entries(对象) 返回数组
fromEntries --- 将一个map格式的数组(多个键值对组成的数组)转成一个对象
语法: Object.fromEntries(map格式的数据) 返回键值对组成的对象
freeze --- 将一个对象冻结 (这个对象不能增删改也不能改原型改属性)
语法: Object.freeze(对象)
isFrozen --- 判断对象是否被冻结
语法:Object.isFrozen(对象) - 返回布尔值
getOwnPropertyDescriptors --- 获取对象属性的描述符
语法:Object.getOwnPropertyDescriptors(对象) 返回描述符
getOwnPropertySymbols --- 将对象中所有的symbol属性,组成一个数组
语法;Object.getOwnPropertySymbols(对象)
getPrototypeOf --- 获取对象的原型对象
语法:Object.getPrototypeOf(对象) 返回原型对象
hasOwn --- 判断一个属性是否属于某个对象,而不是被继承的
语法:Object.hasown(对象,shuxing) 返回布尔值
is ---- 判断两个数据表面看起来是否相等
语法:Object.is(数据1,数据2) 返回布尔值
isExtensible --- 判断一个对象是否可扩展
语法:Object.isExtensible(对象) 返回布尔值
preventExtensions --- 将一个对象变为不可扩展(添加属性)
语法:Object.preventExtensions(对象)
keys --- 将对象所有的键组成一个数组 返回数组
语法: Object.keys(对象) ---- 返回数组
values --- 将对象所有的值组成一个数组 返回数组
语法: Object.values(对象) --- 返回数组
setPrototypeOf --- 给对象设置原型
语法:Object.setPrototypeOf(对象,原型)
seal --- 封闭一个对象 不能添加和删除新属性 但能修改
语法:Object.seal(被封闭的对象) 返回被封闭的对象
三丶ES6的对象操作
1.Symbol 是es6提供的一个函数 创建一个数据
语法:Symbol(字符串) 返回一个Symbol数据 每个Symbol数据都是唯一的
如果作为对象的键使用,可以保证每个键都是唯一的
可以强制转换成字符串和布尔值 不能隐形转换
2.Reflect -- 操作对象结束后可以知道是否操作成功
3.Proxy --- 创建一个被劫持/监听的对象,当访问,设置,删除对象键值对的时候被监视到
语法:new Proxy(对象)