如何添加计数器变量(非全局)

时间:2018-11-14 19:26:04

标签: node.js

我想创建一个计数器变量,该变量在函数中发生某些事情时会不断增加,但不能在nodeJS中全局声明它

这就是我所拥有的:

var ctr = 0;
function myCTR(){
    if(some condition){
        //something happens
        ctr++;
    }else{
        //nothing
}

1 个答案:

答案 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变量是模块功能的局部变量,不会泄漏到全局范围。