|
@@ -0,0 +1,55 @@
|
|
|
+<!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>
|
|
|
+ <div id="app">
|
|
|
+ <!--
|
|
|
+ 通过一个对象可以去代理另一个对象
|
|
|
+ 并且 可以修改 其属性
|
|
|
+ Object.definProperty()
|
|
|
+ getter 劫持数据
|
|
|
+ setter 修改数据
|
|
|
+ -->
|
|
|
+ </div>
|
|
|
+ <script src="./vue.js"> </script>
|
|
|
+ <script>
|
|
|
+
|
|
|
+ let obj = {
|
|
|
+ name:"雪王",
|
|
|
+ sex: "男"
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // Object.defineProperty(obj,"sex",{
|
|
|
+ // value:"女"
|
|
|
+ // })
|
|
|
+
|
|
|
+ let number = 10
|
|
|
+ Object.defineProperty(obj,"age",{
|
|
|
+ get(){
|
|
|
+ console.log("看")
|
|
|
+ return number;
|
|
|
+ },
|
|
|
+ set(value){
|
|
|
+ console.log("新")
|
|
|
+ number = value
|
|
|
+ }
|
|
|
+ })
|
|
|
+ setTimeout(()=>{
|
|
|
+
|
|
|
+ obj.age = 100;
|
|
|
+ console.log(obj,'obj2')
|
|
|
+ },3000)
|
|
|
+ console.log(obj,'obj')
|
|
|
+
|
|
|
+
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|