数据代理的含义
通过一个对象代理对另一个对象中的属性的操作(读/写)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>何为数据代理</title>
</head>
<body>
<!-- 数据代理:通过一个对象代理对另一个对象中的属性的操作(读/写) -->
<script type="text/javascript">
let obj = {x:100} // {x:100}--将括号当成一个对象,x--属性名 100--属性值
let obj2 = {y:200}
Object.defineProperty(obj2,'x',{
// 提供get函数
get(){
console.log('读取x的值了');
return obj.x
},
// 提供set函数
set(value){
console.log('有人修改x的属性值了,且值是',value);
obj.x = value
}
})
</script>
</body>
</html>
说明:
Object.defineProperty()的方式可以给一个对象追加属性,同时可以对该属性进行一些高级的配置。
浏览器F12测试