为了确保适当的隔离,我倾向于将我编写的每个 node.js 模块包装在函数范围内:
(function() {
var express = require('express');
var jade = require('jade');
var moment = require('moment');
exports.someFunction = function() {
// do something
};
exports.otherFunction = function() {
// do something else
};
})();
我这样做已经有一段时间了,但我有一种感觉,node.js 的模块系统实际上是在为我做这件事,或者(换句话说)上面的代码相当于下面的代码:
var express = require('express');
var jade = require('jade');
var moment = require('moment');
exports.someFunction = function() {
// do something
};
exports.otherFunction = function() {
// do something else
};
两者真的等价吗?
我特别想知道隔离级别是否相同:express
, jade
or moment
模块的局部变量? (即,我想确保它们没有在全局范围内定义或干扰此模块之外的任何其他定义)。
模块内声明的变量是该模块的本地变量。省略您的封闭函数是安全的。
来自Node.js 文档 http://nodejs.org/api/modules.html#modules_modules:
模块的本地变量将是私有的,就像模块被包装在函数中一样
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)