我正在尝试从另一个文件访问该函数,如下所示:
exp1.js
Glide.with()
.load()
.into();
我想在另一个名为 exp2.js 的文件中访问“expIn()”我该如何实现? 请帮我。
答案 0 :(得分:0)
按原样,您不会导出expIn()
。您正在导出声明和定义expIn()
的外部函数。 expIn()
只是一个局部变量,无法在实际导出的匿名外部函数之外访问。要使其对其他文件可见,您必须直接导出它或在导出的函数 上定义它。
您错过了一些代码,但在expIn()
之外您有3个选项可以访问exp1.js
。首先是直接导出
<强> exp1.js 强>
module.exports = function expIn(config) {
// Code...
};
<强> exp2.js 强>
const { expIn } = require('exp1.js');
expIn({/*config*/});
或者,您可以将expIn()
添加到外部函数的原型中。当您想要导出一个附加了多个方法的类时,通常会执行此操作。您可以使用以下两种方法之一。首先,与你已经做的最相似的方法是
<强> exp1.js 强>
module.exports = function ClassName(/*constructor args*/) {
this.expIn = function expIn(config) {
// Code...
};
// Other initialization...
};
或者,您可以使用此方法在原型上更明确地定义expIn()
:
<强> exp1.js 强>
function ClassName(/*constructor args*/) {
// Initialize class.
}
ClassName.prototype.expIn = function expIn(config) {
// Code...
};
module.exports = ClassName;
无论您在上面选择哪两种方法,都可以将其作为
进行访问const ClassName = require('exp1.js');
let classInstance = new ClassName();
classInstance.expIn({/*config options/*});
您可以使用的最后一种方法是将expIn()
定义为函数类的静态方法。这看起来像是:
<强> exp1.js 强>
function ClassName(/*constructor args*/) {
// Initialization code...
}
ClassName.expIn = function expIn(config) {
// Code...
};
module.exports = ClassName;
<强> exp2.js 强>
const ClassName = require('exp1.js');
ClassName.expIn(/*config options*/);
答案 1 :(得分:0)
我通过在功能(红色)之外添加功能来解决此问题:
module.exports = function(RED) {
}
function expIn(config) {
//some code
}
然后像正常一样导出:
module.exports.expIn = expIn;
然后开始工作。 我不确定这是否正确,但是符合我的要求。