目录
1、Object原型方法
⑴、hasOwnProperty(key):检测某个对象中是否自带某个指定的属性,返回boolean
⑵、isPrototypeOf(obj):用于判断一个对象是否在另一个对象的原型链上,返回boolean
⑶、propertyIsEnumerable(key):判断当前对象中指定属性是否为自身属性,返回boolean
⑷、toString():转为字符串,注:每个对象中都有一个toString方法,转换的结果跟当前Object原型中的toString方法不一致
⑸、toLocaleString():给不同的数据调用会得到不同的数据
⑹、valueOf():给不同类型的对象调用功能是不同的
2、Object构造函数的方法
⑴、assign(o1,o2):将o2对象中的内容,拷贝到o1对象中,并可以返回一个新对象;该方法是属性浅拷贝
浅拷贝:拷贝的是当前对象中的复杂类型的引用地址
深拷贝:则是拷贝当前对象中的复杂类型的所有内容
⑵、 create(指定原型,键值对参数对象):创建对象中的键值对
语法:
Object.create(obj,{
//给当前对象中设置内容
address:{
value:"广州", //键值
writable:true, //是否可修改
enumerable:true, //是否可遍历
configurable:true //是否可删除
}
})
⑶、defineProperties
defineProperties(对象,{键值对的描述}):用于给对象添加或修改一个或多个属性
⑷、 defineProperty
defineProperty(对象,属性,{属性的描述}):用于监视对象某个属性被访问或被修改的操作(可以做双 向数据绑定操作)
双向数据绑定:视图和代码中的数据,只要有一个地方发生改变,那另一个地方的数据也同样发生变化
⑸、 entries
entries():获取对象中可以遍历的键值对,返回一个数组
⑹、 fromEntries
fromEntries():跟entries的作用相反,将一个map格式的数组(多个键值对组成的数组)转成一个对象
⑺、 freeze
freeze():用于冻结一个对象,让对象不能新增、不能修改、不能删除、不能整改原型对象,不能改属性的特性
注:如果对象中的值,也是一个对象,里面的小对象是没有被冻结的,也就说这种冻结只是浅冻结
⑻、 getOwnPropertyDescriptors
getOwnPropertyDescriptors():获取当前对象中所有属性的描述信息
⑼、 getPrototypeOf
getPrototypeOf():获取当前对象中的原型
⑽、setPrototypeOf
setPrototypeOf():给指定对象设置原型
⑾、 hasOwn
hasOwn():判断一个属性是否属于某个对象,而不是被继承来的。跟hasOwnProperty的功能一样
⑿、is
判断两个变量是否相等,跟===等号类似
⒀、isExtensible
isExtensible():判断当前对象中的内容是否可扩展
⒁、isFrozen
isFrozen():判断当前对象是否被冻结
⒂、preventExtensions
preventExtensions():将当前对象变成不可扩展
⒃、seal
seal():封闭当前对象,不能删除,不能添加
⒄、 keys
keys():获取当前对象中所有可枚举属性的键名
⒅、values
values():获取当前对象中所有可枚举属性的键值
⒆、getOwnPropertySymbols
getOwnPropertySymbols():获取当前对象中所有的Symbol属性的键名,返回一个数组
3、ES6中新增内容-symbol
1、Symbol:是ES6中新增的一种数据类型,每个值都表示独一无二,可以拿来作为对象 中的键名
注:
⑴、Symbol只是一个普通的数据类型,不是构造函数,不能跟new关键字一起使用
⑵、直接使用Symbol作为对象中的键名,是不可遍历,不可获取
⑶、当Symbol方法中的参数是对象时,会默认触发toString方法
⑷、Symbol数据不能跟其他类型的数据运算,不会进行隐式转换
⑸、Symbol数据可以强制转为字符串和boolean值
2、 Symbol.for():创建Symbol内容,当内存中如果已经有该内容,则不用创建,直接使 用;如果没有该内容,则创建
3、Symbol.keyFor():获取上面for方法创建的Symbol内容
4、description:获取Symbol中的内容