1 对象属性类型
对象属性有4个特征来描述他们的行为
Configurable:表示属性是否可以通过delete删除并重新定义,是否修改它的特性,以及是否可以改为访问器属性。默认为true
Enumerable:表示属性是否可以通过for-in循环返回 默认为true
Writeable:属性的值是否可以被修改
Value:包含属性实际值
2.修改属性
修改属性的默认特性,就必须使用Object.defineProperty()方法,
let persion = {}
Object.defineProperty(persion,"name",{
writeable:false,
value:"",
enumable:true,
configurable:true
})
3 修改对象属性的特性
使用Object.getOwnPropertyDescriptor()方法获取到属性指定特性,访问属性包含 configurable,enumerable get set
4 合并对象
ES6专为为合并对象提供合并方法 Object.assign(),方法接收一个目标对象和一个或者多个有源对象作为参数,然后把属性复制到目标对象中(浅复制),方法返回值就是目标对象.
let des = {}
let src ={id:"src"}
let res = Object.assign(des,src)
//res === des
5 对象标识相等
ES6体重Object.is()来判断是否相等
6 增强对象语法
当属性名和变量名一致的时候,直接在对象中写入变量
let msg ="a"
let obj = {msg}
console.log(obj) //{msg:"a"}
7 对象计算属性
对象的的属性可以是变量,最后对象表现的属性为变量对应的值。同时对象的方法名也可以使用变量的形式展示。变量用[]包裹
8 对象结构
ES6新增对象解构语法,可以使用一条语句嵌套数据实现一个或者多个赋值操作。null undefined不能参与数据解构。结构的时候支持使用默认值操作
let persion ={
age:27,
name:"view"
}
let {age,name} = persion //第一种
let {name:username,age:userage} = persion //username = view userage = view
let {age,k="111"} = persion //age= 27 k=111
解构支持多层解构
let psersion = {
age:26,
obj:{
a:1
}
}
let {age:{a}} = persion //age = 26 a =1
解构函数同时支持作为函数的参数。
网友评论