javascript - 传递全局变量来导入 JS 模块

标签 javascript jquery ecmascript-6 global-variables

假设我有两个使用 webpack 导入的 JS 文件。我想创建可以在整个应用程序中使用的全局变量。问题是,经过多次错误尝试后,我无法做到这一点。我见过类似的问题,但这种情况是独一无二的(加上答案不起作用)

我已将其缩小为最简单的形式,应该可以解释我正在尝试执行的操作。

one.js

class oneJS {
    constructor() {
        var windowWidth = $(window).width()
    }
}
export default oneJS

two.js

class twoJS {
    constructor() {
        if (windowWidth >= 1200) {
            console.log('greater than');
        } else {
            console.log('less than');
        };
    }
}
export default twoJS

index.js

import oneJS from 'one.js';
new oneJS();

import twoJS from 'two.js';
new twoJS();

一如既往,提前致谢。

最佳答案

您可以将您的值存储为 OneJS 上的实例属性,并利用构造函数注入(inject)将 oneJs 实例注入(inject)到需要访问相同值的所有其他类实例,例如

one.js

class OneJS {
    constructor() {
        this.windowWidth = $(window).width(); // Store the value on the instance
    }
}
export default OneJS;

two.js

class TwoJS {
    constructor(one) {
        if (one.windowWidth >= 1200) {
            console.log('greater than');
        } else {
            console.log('less than');
        }
    }
}
export default TwoJS

index.js

import OneJS from 'one.js';
import TwoJS from 'two.js';

const oneJS = new OneJS();

new TwoJS(oneJS);

关于javascript - 传递全局变量来导入 JS 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52226129/

相关文章:

javascript - 如何 "mount"Angular 2 模块在路由层次结构中某个点的路由

javascript - navigator.geolocation.watchPosition - 频率

jquery - 悬停时工具提示错位

javascript - 新增 Div 不工作点击功能

javascript - 解构数组中的元素,然后再次加入

javascript - 持续关注值(value)变化

javascript - 在悬停时突出显示表格行显示列之间的空白

javascript - Jquery UI timepicker 附加触发解析错误

javascript - CJS 和 ES6 模块之间的语法差异

function - 简化 variable.handler = function {}