今天遇到一个难题,有两个文件a.js和b.js。
b.js文件需要引用a.js文件的一个变量avalue,之前avalue是一个常量字符串。
现在需求有变化,avalue不再是一个常量,而是一个随时间动态变化的字符串。
这种情况下,最简单的做法在a.js创建一个函数,然后b.js去调用该函数就好。但是由于某些原因,b.js文件不能做改动,也就是还是调用a.js文件的变量avalue。
这个时候就可以用到js中的代理Proxy,等监测到要获取avalue时进行拦截,然后返回动态变化的字符串。a.js文件的代码如下:
const customFunction = function () { console.log('Executing custom function'); // 在这里定义你想要执行的逻辑 return new Date().getTime(); }; const target = { avalue: 'constant', other: 'other' }; const uploadBaseProxy = new Proxy(target, { get: function (target, prop, receiver) { if (prop === 'avalue') { return customFunction(); } else { return target[prop] } } }); export default uploadBaseProxy;