<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Object.defineProperty</title>
</head>
<body>
<script>
class Test {
constructor(data) {
for (let key in data) {
// this 不能为data,否则会报错,我也不知道为啥。。。。。。。
Object.defineProperty(this, key, {
configurable: false,
enumerable: true,
set(val) {
console.log('设置值事件')
data[key] = val;
},
get() {
console.log('获取值事件')
return data[key];
}
})
}
}
}
let data = {
name: 'sweet boy'
}
let test = new Test(data);
</script>
</body>
</html>
关于什么是Object.defineProperty(), 请参考下面链接:
在浏览器中打开运行过程为
