UNPKG

js-utils-chs

Version:

自定义工具函数库

35 lines (34 loc) 1.2 kB
/** * 代理 * @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); }