深层次监听某个变量发生改变
// 创建一个递归 Proxy 函数
function createDeepProxy(target, path = '') {
return new Proxy(target, {
set(obj, prop, value) {
const fullPath = path ? `${path}.${prop}` : prop;
// 如果当前属性是对象或数组,递归创建 Proxy
if (typeof value === 'object' && value !== null) {
value = createDeepProxy(value, fullPath);
}
// 检查属性是否变化
if (obj[prop] !== value) {
console.log(`Property "${fullPath}" changed from "${obj[prop]}" to "${value}"`);
debugger; // 触发断点
}
// 更新属性值
obj[prop] = value;
return true;
}
});
}
// 用 Proxy 包装 _eleinfos
_eleinfos = createDeepProxy(_eleinfos);