是否可以从该模块本身内部获取对模块的上下文对象的引用?不是global
对象或exports
对象,而是模块的私有上下文对象......
例如,在Node.js模块中,我正在寻找一种方法:
var a = 1;
var b = 2;
// CONTEXT is the reference I'm looking for
console.log(CONTEXT); // -> {a: 1, b: 2}
答案 0 :(得分:1)
模块中可用的模块(vars,module和exports)的上下文。因此,如果我在一个模块中执行此操作并从另一个脚本中请求它:
var _pv = 1;
var _foo = function() {
console.log('foo');
}
exports.foo = _foo;
console.log('pv: ' + _pv);
_foo();
console.log(module);
console.log(module.exports);
输出:
pv: 1
foo
{ id: '/Users/bryanmac/Testing/test2/mod.js',
exports: { foo: [Function] },
parent:
{ id: '.',
exports: {},
parent: null,
filename: '/Users/bryanmac/Testing/test2/test.js',
loaded: false,
children: [ [Circular] ],
paths:
[ '/Users/bryanmac/Testing/test2/node_modules',
'/Users/bryanmac/Testing/node_modules',
'/Users/bryanmac/node_modules',
'/Users/node_modules',
'/node_modules' ] },
filename: '/Users/bryanmac/Testing/test2/mod.js',
loaded: false,
children: [],
paths:
[ '/Users/bryanmac/Testing/test2/node_modules',
'/Users/bryanmac/Testing/node_modules',
'/Users/bryanmac/node_modules',
'/Users/node_modules',
'/node_modules' ] }
{ foo: [Function] }
编辑:
你澄清了它在当前范围内的变量。我不相信你可以从技术上得到变量。请参阅:Getting All Variables In Scope
但是您可以导出这些变量,然后我们可以在module和module.exports上找到它们。正如我在上面指出的那样。