javascript:在不同的.js文件中声明的调用函数?

时间:2014-10-25 19:05:48

标签: javascript node.js

我在fileB.js中编写了一些需要调用fileA.js中声明的另一个函数的逻辑。 fileA.js声明了一个名为abc()的函数。如何从fileB.js调用abc()。

fileA和fileB都在同一目录中。

谢谢

聚苯乙烯。我没有在HTML中使用它。我正在本地运行它作为我正在进行的另一个项目的一部分。我现在使用节点从终端运行它。但我没有在这两个文件中使用任何其他内容。我只是有一堆非常简单的功能。没有node.js模块或任何东西......

4 个答案:

答案 0 :(得分:2)

Node.js将每个文件隔离为module,为每个文件提供自己的本地范围,以基本上定义“私有functionvar 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文件,然后只需在任何地方调用它们即可,它将起作用。