|
@@ -0,0 +1,42 @@
|
|
|
+<!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>
|
|
|
+ /**
|
|
|
+ * 代理 proxy
|
|
|
+ * const proxy = new Proxy(target,handler);
|
|
|
+ * target 目标值
|
|
|
+ * handler 包含一系列的拦截操作
|
|
|
+ *
|
|
|
+ * */
|
|
|
+ let obj = {
|
|
|
+ name:'Lucy',
|
|
|
+ // age: 18
|
|
|
+ }
|
|
|
+ const vase = new Proxy(obj,{
|
|
|
+ get(target,key,prototype) {
|
|
|
+ console.log(target,'目标对象');
|
|
|
+ console.log(key,'方法');
|
|
|
+ console.log(prototype,'代理值');
|
|
|
+ return target;
|
|
|
+ },
|
|
|
+ set(target,key,prototype) {
|
|
|
+ console.log(target,'原对象')
|
|
|
+ console.log(key,'修改的属性');
|
|
|
+ console.log(prototype,'新对象');
|
|
|
+ //执行代理中的内容
|
|
|
+ return target[key] = 'AAA';
|
|
|
+ }
|
|
|
+ })
|
|
|
+ vase.name = 'LiLi';
|
|
|
+ console.log(vase.set);
|
|
|
+ // console.log(vase.get.name);
|
|
|
+ // console.log(vase.set);
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|