IIFE(即时调用的函数表达式)
(function (window, document, undefined) {
//
})(window, document);
JavaScript具有函数作用域,因此首先创建了一些需要的“私有范围”。例如:
(function (window, document, undefined) {
var name = 'Todd';
})(window, document);
console.log(name); //name is not defined,它在一个不同的范围内
一个正常函数是这样的:
var logMyName = function (name) {
console.log(name);
};
logMyName('Todd');
“IIFE”之所以被创造出来是因为它们是直接调用的函数表达式。这意味着它们在运行时被立即调用,
我们也不能再调用它们了,它们只运行一次:
这里的秘诀是,(我在前面的例子中给一个变量赋值):
(function () {
})();
多余的一对括号是必要的,因为这样不起作用:
function () {
}();