我有main.js
:
function someFunc($smt){
// Do something
}
require('./script.js');
当我尝试运行script.js
时:
someFunc($someParam);
我遇到一个错误:
ReferenceError: someFunc is not defined
如何将函数从父文件导入到需要的文件中?
答案 0 :(得分:2)
使script.js
导出起作用的函数,并让该函数接受参数。
在script.js
module.exports = function (f) {
f();
}
然后在main.js
var script = require('./script.js');
function someFunc(){
// Do something
}
script(someFunc);
答案 1 :(得分:0)
我认为,这是将自定义参数包含到要求脚本中的更好的解决方案:
// main.js
function someFunc($smt) {
// Do something
}
$require = require;
// prepare $require for inject
$module = module;
// prepare $module for inject
var script = fs.readFileSync('./script.js', 'UTF8');
script = new Function('someFunc', 'require', 'module', script);
script.call({}, someFunc, $require, $module);
TODO:使全局函数能够为请求的文件准备$ require和$ module变量。然后像这样调用:
const script = include(file/path);