Proxy实现响应式对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
const user = {
name: "小米",
age: 20,
wife: {
name: '小红',
age: 18
}
}
let proxyUser = new Proxy(user, {
get: function (target, prop) {
console.log(target, prop)
console.log('get调用了')
return Reflect.get(target, prop)
},
set: function (target, prop, val) {
console.log(target, prop, val)
console.log('set调用了')
return Reflect.set(target, prop, val)
},
deleteProperty: function (target, prop) {
console.log(target, prop)
console.log('deleteProperty调用了')
return Reflect.deleteProperty(target,prop)
}
})
console.log(user.name)
proxyUser.name = 'sss'
console.log(user)
proxyUser.gender = "1"
console.log(user)
delete proxyUser.gender
console.log(user)
</script>
</body>