我在fileB.js中编写了一些需要调用fileA.js中声明的另一个函数的逻辑。 fileA.js声明了一个名为abc()的函数。如何从fileB.js调用abc()。
fileA和fileB都在同一目录中。
谢谢
聚苯乙烯。我没有在HTML中使用它。我正在本地运行它作为我正在进行的另一个项目的一部分。我现在使用节点从终端运行它。但我没有在这两个文件中使用任何其他内容。我只是有一堆非常简单的功能。没有node.js模块或任何东西......
答案 0 :(得分:2)
Node.js将每个文件隔离为module,为每个文件提供自己的本地范围,以基本上定义“私有”function
和var
s。
通过此隔离,fileA
需要export abc
才能与其他文件/模块共享:
function abc() {
// ...
}
exports.abc = abc;
然后,fileB
可以require()
fileA
使用相对路径(.
引用当前目录)并使用其导出的function
:
var a = require('./fileA');
a.abc();
答案 1 :(得分:1)
如果您使用的是节点,则在fileS中:
module.exports = { abc: abc } //assuming that abc holds a reference to your function, declared somewhere above
然后,在文件中,您需要文件并使用您导出的内容:
var fileA = require('./fileA.js');
fileA.abc();
答案 2 :(得分:1)
由于您在NodeJS中运行它,我建议您在fileB.js
的顶部执行以下操作:
var fileA = require( './fileA.js' );
但是,要使其正常工作,您要在fileB.js
中使用的功能应从fileA.js
导出。为此,我们假设函数abc()
是您要访问的内容:
// In fileA.js:
function abc() {
// ... do something ...
}
module.exports = abc;
如果您希望fileB.js可以使用多个函数/变量/对象,则可以将它们全部导出为一个对象:
// In fileA.js
function abc() {
// ... do something here ...
}
var myObject = {
propOne: 'foo',
propTwo: 'bar
};
module.exports = {
abc: abc,
myObject: myObject
};
然后,在fileB.js
内:
// Import the fileA object you just created.
var fileA = require( './fileA.js' );
// Save references to abc and myObject
var myObject = fileA.myObject,
abc = fileA.abc;
答案 3 :(得分:0)
只需在HTML中包含两个JS文件,然后只需在任何地方调用它们即可,它将起作用。