看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布看一下能不能发布
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="description" content=""> <meta name="keywords" content=""> <title>Examples</title> <style type="text/css"> </style> </head> <body> <script> var o = { a: { b: 'xxx' }, c: 123 } var tempValue = ''; var catchObj = {}; //存劫持的数据 function test(data) { for (var prop in data) { if (typeof data[prop] == 'object') { test(data[prop]); definePropertyData(catchObj, tempValue, data, prop) } else { definePropertyData(catchObj, tempValue, data, prop) } } } function definePropertyData(catchObj, tempValue, data, prop) { catchObj[prop] = new Array(); tempValue = data[prop]; Object.defineProperty(data, prop, { set(newValue) { tempValue = newValue; catchObj[prop].push(tempValue); }, get() { return tempValue; } }) } // test(o); let oProxyData = new Proxy(o,{ set(target,key,value,receiver) { console.log(target,key,value,receiver); } }) </script> </body> </html>