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中有效)