js-utils-chs
Version:
自定义工具函数库
35 lines (34 loc) • 1.2 kB
JavaScript
/**
* 代理
* @param {Object} obj //需要代理的对象
* @param {Function} getFn //读取时触发
* @param {Function} setFn // 修改属性||添加属性时 触发
* @param {Function} delFn // 删除属性时触发
* @returns
*/
export function proxy(obj, getFn, setFn, delFn) {
if (typeof obj !== 'object') return "请传入一个对象或者是数组"
return new Proxy(obj, {
get(target, propKey, receiver) {
getFn && getFn(target, propKey, receiver)
return target[propKey]
},
set(target, propKey, value, receiver) {
setFn && setFn(target, propKey, value, receiver)
target[propKey] = value;
},
deleteProperty(target, propKey) {
delFn && delFn(target, propKey)
return delete target[propKey];
},
})
}
/**
* 自定义代理
* @param {Object} obj // 需要代理的对象
* @param {Object} reflect // 设置代理
*/
export function proxyCustom(obj, reflect = {}) {
if (typeof obj !== "object" || typeof reflect !== 'object') return "请传入一个对象或者是数组"
return new Proxy(obj, reflect);
}