Proxy + Reflect 实现 响应的数据变化
生活随笔
收集整理的這篇文章主要介紹了
Proxy + Reflect 实现 响应的数据变化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Proxy?對象用于定義基本操作的自定義行為(如屬性查找,賦值,枚舉,函數調用等)
let p = new Proxy(target, handler);- get(target, propKey, receiver):攔截對象屬性的讀取,比如proxy.foo和proxy['foo']。
- set(target, propKey, value, receiver):攔截對象屬性的設置,比如proxy.foo = v或proxy['foo'] = v,返回一個布爾值。
?
let handler = {get(target,key) {//如果得到的值是一個對象我們還得再調一次if(typeof target[key]=='object') {return new Proxy(target[key],handler)}return Reflect.get(target,key);},set(target,key,value) {if(key==='length') {return true;}update();return Reflect.set(target,key,value);} }; let obj = {a:{a:1},b:2,d:[1,2,3,4] }; function update() {console.log('更新視圖') }; let p = new Proxy(obj,handler); obj.c=3; console.log(obj) Reflect.get(target,key); 相當于 target{key]Reflect.set(target,key,value); 相當于 target[key}= value;
輸出:
{ a: { a: 1 }, b: 2, d: [ 1, 2, 3, 4 ], c: 3 }
?
轉載于:https://www.cnblogs.com/guangzhou11/p/11360800.html
總結
以上是生活随笔為你收集整理的Proxy + Reflect 实现 响应的数据变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ivew 封装删除 对话框
- 下一篇: Dockerfile命令详解