Object.defineProperty()
1、这个方法是ESS新增的
2、这个方法的作用是:给对象新增属性,或者设置对象原有的属性。
3 怎么用?
Object.defineProperty(给那个对象新增属性,‘新增的这个属性名叫啥’,{给新增的属性设置相关的配置项key:value对})
4.第三个参数是属性相关的配置项,配置项都有哪些?每个配置项的作用是啥?
value 配置项:给属性指定值
writable 配置项: 不需要我们手动调用。当读取属性值的时候,getter方法被自动调用
getter 方法 配置项:不需要我们手动调用的。当独处属性值的时候,getter方法被自动调用
**getter方法的返回值非常重要,这个返回值就代表这个属性它的值
setter 方法 配置项:不需要我们手动调用的。当修改属性值的时候,setter方法被自动调用
注意:当配置项中有setter和getter的时候,value和writable配置项都不能存在
<script>
let phone ={}
//临时变量
let temp
Object.defineProperty(phone ,‘color’,{
// value : ‘亚麻棕’
// writable : true,
//getter方法配置项
get : function(){
console.log('getter方法执行了')
//return '动态'
return temp
}
//setter方法配置项
set :functipon(){
console.log('etter方法执行了',var)
temp=val
}
})
</script>