原理:利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。 缺点:双向数据流是自动管理状态的, 但是在实际应用中会有很多不得不手动处理状态变化的逻辑, 使得程序复杂度上升。
Object.defineProperty()函数,它是简单的ES5 JavaScript。它允许我们为属性定义getter和setter函数。
基本用法
let data = {price : 5 , quantity:2}
Object.defineProperty(data.‘price’,{
get(){
console.log(accessed
)
},
set( newVal ){
console.log(change
)
}
})
data.price // 调用 get()
data.price = 20 //调用set()