【发布时间】:2026-01-31 13:00:01
【问题描述】:
我正在尝试为一个简单的 ES6 项目建立一个非常精简的结构。我显然在使用 Webpack 来捆绑所有东西,但我遇到了障碍。
在过去的 JavaScript 中,我非常热衷于使用类似 void 的函数(更改某些内容,不返回任何内容),这对于我的面向 jQuery 的 DOM 操作和画布交互编程非常有效。
现在深入研究 ES6,我似乎无法继续使用这种方法。主要是因为在导入模块时,它们的作用域非常严格。
例如,在我的index.js 文件中:
import * from THREE;
import update from 'my-module';
var camera = new THREE.PerspectiveCamera();
然后,在my-module.js
update = () => {
camera.update();
}
我觉得从这里开始,这将是一种完全不同的模式心态,但很难弄清楚那会是哪一种……
【问题讨论】:
-
window.camera是一个全局变量。 -
我看不出偏好“
void-like functions”与使用全局变量有什么关系。 -
似乎是学习如何避免全局变量的好时机。例如,您可以改为将
camera传递给update。这也使您的代码更易于测试。 -
@PatrickRoberts 你是对的。我改写了这个问题,以便更准确。这只是通过 ES6 模块传递范围而不返回
标签: javascript webpack ecmascript-6