今天遇到一个难题,有两个文件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;    

 

posted on 2024-06-24 17:48  龙种人  阅读(2)  评论(0编辑  收藏  举报