我想在不使用require的情况下包含一些js文件,因为它会将它链接到变量,并且我有一些我想直接调用的函数。我该怎么做 ?这是不好的做法吗?
我想避免的是: 假设我有tool.js如下:
function foo() {
log.debug("foo");
}
exports.foo = foo;
app.js中的
var tool= require('tools.js');
tool.foo();
我希望能够在不为其创建模块的情况下调用foo,就好像它是在app.js中定义的那样;像这样
foo();
答案 0 :(得分:2)
您可以要求文件并使用其功能,而无需使用全局对象将其分配给变量。
file1.js
function logger(){
console.log(arguments);
}
global.logger = logger;
file2.js
require('./file1');
logger('ABC');
这种方法可以摆脱变量范围,并且会污染全局命名空间,从而可能导致与变量命名的冲突。
答案 1 :(得分:0)
你需要像这样使用全球,
======= app.js ======
global.foo= require('tools.js'); // declare as global
foo(); // can be called from all files