【发布时间】:2016-06-17 22:08:37
【问题描述】:
我在 node.js 的主脚本顶部需要不同的文件。我所有的需求语句都被提升到顶部。这会产生一个问题,因为当调用这些导入脚本中的方法时,它们无法访问调用它们的函数(因为由于提升问题,它们不可避免地在这些函数之外定义)。因此,我必须始终在选项对象中传递变量。有没有人遇到过类似的问题?人们使用某种标准的解决方法吗?谢谢!
function outer(){
//let's pretend we're in a node environment
//this required script will get hoisted to the very top and therefore lose access to the "something" variable!
var common = require('../globals/common.js');
var something = "something";
common.printsomething();//will return "something is not defined"
};
outer();
【问题讨论】:
-
不是吊装,是对模块工作原理的误解。他们无权访问调用者的范围。
-
假设
common.printsomething()应该到达something,那么不,没有办法做到这一点。但我感觉我不明白你在问什么。 -
@robertklep:我似乎找不到一个很好的资源来解释这些模块是如何工作的。你有链接吗?谢谢!
-
模块就像密封的小黑匣子,您可以将其运送到其他功能。盒子里面的代码看不到外面的东西,但是调用代码可以把东西放进盒子里,把东西拿出来。这有点道理吗?
标签: javascript node.js node-modules