Object扩展
Object.create(prototype, [descriptors])
- [descriptors]:描述,为一个对象
- value : 指定值
- writable : 标识当前属性值是否是可修改的, 默认为false
- configurable: 标识当前属性是否可以被删除 默认为false
- enumerable: 标识当前属性是否能用for in 枚举 默认为false
let obj1={};
let obj={
firstName:'kebo',
lastName:19
}
obj1 = Object.create(obj,{
sex:{
value:'男',
writable:true,
configurable:true,
enumerable:true
}
});
console.log(obj1);
obj1.sex="女";
Object.defineProperties(object, descriptors)
- get 获取当前属性值的回调函数
- set 监听当前属性值改变时候的回调函数
- 存取器属性:setter,getter一个用来存值,一个用来取值
/*1 get 获取当前属性值的回调函数
2、set 监听当前属性值改变时候的回调函数
*/
var obj = {
firstName:'xu',
lastName:'zhenzhen',
get FullName(){ // 获取当前属性值的回调函数
return this.firstName+','+this.lastName;
},
set FullName(data){ //监听当前属性值改变时的回调函数
var names = data.split(' ');
this.firstName = names[0];
this.lastName = names[1];
}
}
console.log(obj.FullName); //xu,zhenzhen,对象属性调用的时候get和set函数执行
console.log(obj) //{firstName: "xu", lastName: "zhenzhen"}
obj.fullName = 'nvshen';
console.log(obj.fullName); //nvshen
console.log(obj) //{firstName: "xu", lastName: "zhenzhen", fullName: "nvshen"}