60-[重点]Object.defineProperty的set方法
执行set的条件:只要修改到name属性,就把return后面的val改成新的值newVal
<!DOCTYPE html>
<html lang="en">
<head>
<title>60-[重点]Object.defineProperty的set方法</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- <link href="css/style.css" rel="stylesheet"> -->
<script>
let obj = {};
Object.defineProperty(obj,'name',{
get(){
// 什么时候执行?
// 获取name属性的时候执行这里的代码
console.log('执行了get');
// obj.name的值到底是什么?? 就是return后面的这个值
return 'Vue'
},
set(newVal){ // newVal接收等号后面的值
console.log('---执行了set方法',newVal);
// 只要修改到name属性,就把return后面的val改成新的值newVal
}
});
console.log(obj.name);
obj.name='Vue3'; // 触发set方法
console.log(obj.name);
</script>
</head>
<body>
</body>
</html>