我想创建一个计数器变量,该变量在函数中发生某些事情时会不断增加,但不能在nodeJS中全局声明它
这就是我所拥有的:
var ctr = 0;
function myCTR(){
if(some condition){
//something happens
ctr++;
}else{
//nothing
}
答案 0 :(得分:1)
ctr
不是全局变量,除非将其分配为global.ctr = ...
。它位于模块范围内。
Node.js基于modules(用于.js脚本的Commonon模块和用于.mjs脚本的ES)。评估的代码在模块范围内评估。
对于CommonJS模块,脚本是在module wrapper函数内部进行评估的,即
var ctr = 0;
...
脚本实际上是
function(exports, require, module, __filename, __dirname) {
var ctr = 0;
...
}
ctr
变量是模块功能的局部变量,不会泄漏到全局范围。