JSFiddle - React, Tailwind, and code Playground

JavaScript

// makeCounter返回了另外一个内部函数。
// 而这个内部函数可以访问私有变量i,所以这个内部函数实际上拥有一个特权(访问内部私有变量)

function makeCounter() {
    // `i`变量仅在`makeCounter`函数内部有效
    var i = 0;

    return function () {
        console.log(++i);
    };
}

// 注意,`counter` 和 `counter2` 拥有各自的`i`
var counter = makeCounter();
counter(); // logs: 1
counter(); // logs: 2

var counter2 = makeCounter();
counter2(); // logs: 1
counter2(); // logs: 2

i; // ReferenceError: i未定义(i仅在makeCounter中有效)