JSFiddle - React, Tailwind, and code Playground
JavaScript
// 创建一个立即执行的匿名函数表达式,并将函数的返回值赋予一个变量。
// 与第一例子相比,这个方法略去了`makeWhatever`中间函数。
// 就像上面重要提示中所述,尽管在这个例子中,外面的括号是非必需的。
// 但加上括号可以明确这是以立即执行的函数,将函数的结果赋予变量,而非将函数赋予变量。
var counter = (function () {
var i = 0;
return {
get: function () {
return i;
},
set: function (val) {
i = val;
},
increment: function () {
return ++i;
}
};
}());
// `counter`是一个带有成员的对象,在此例中她的成员都是函数。
counter.get(); // 0
counter.set(3);
counter.increment(); // 4
counter.increment(); // 5
counter.i; // undefined (`i` 并非`counter`的成员)
i; // ReferenceError: i未定义 (仅存在于匿名函数表达式形成的私有作用域中,即闭包)