假设,我有两个使用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();
一如既往,谢谢您。
答案 0 :(得分:2)
您可以将值作为实例属性存储在OneJS上,并利用构造函数注入将oneJs实例注入所有需要访问同一值的其他类实例,例如
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);