我在一个文件中用JavaScript定义pageId = 3
,在另一个文件中定义socket = io()
,我想在其他文件中使用这些变量。
我想我应该在ES6中使用模块,但我不知道该怎么做。
现在它确实有效,因为我在实际使用变量的文件之前加载的文件中定义了两个变量,但它看起来像是错误的代码,我的代码IDE编辑器给了我一个警告,即变量不是没定义,因为它无法在当前文件中看到它。
我已经阅读了一些教程,但我仍然看不到如何在一个文件中定义变量并将其导出到其他文件。
它会不会是
const pageId = 3;
const socket = io(); // which is defined in file 'socket.io-1.4.5.js' which is loaded before this file
module.exports = { pageId, socket };
然后使用
将其导入其他文件const pageId = require('pageId');
const socket = require('socket');
socket.on('connect', ...);
(...)
甚至没有在任何地方加载这些文件?
答案 0 :(得分:0)
嗯,我知道这听起来很愚蠢(特别是pageId示例),芽有些情况甚至是必需的
想象一下,您正在构建一个包含数百个模块的物理/数学库。这说得通。仅在一个地方声明数学常数 并且仅在需要时加载它们
可能一个一个地输出它们并不是最好的解决方案,但它是一个有效的解决方案
至于io对象。我有必要声明它,更改一些配置值然后,使用新配置重新导出它,无论何时需要它而不是创建一个新配置并在任何地方重新配置它(假设这种行为有效,我认为疑问)
无论如何,你的样本的语法是不正确的......你不能“需要”和单独的var或函数那样。将你的firstfile称为“strange.js”,它应该像:
const pageId = require('strange').pageId
const socket = require('strange').socket;