立即执行函数
此类函数没有声明,在一些执行过后即释放,适合做初始化工作
立即执行函数定义
(function () {}());// W3C 建议第一种
(function () {})();
立即执行函数用时,一般都会讲值保留下来,将值保留下来
var num = (function (a, b, c) {
return a + b + c;
}(1, 2, 3));
立即执行函数由来
// 函数定义 1 + 2
// 1.函数声明
function test() {}
// 2.函数表达式
var test = function test() {};
function one() {}();// 编译报错
var two = function () {}();// 能被执行
two()// 报错 undefined
// 只有表达式,才能被执行符号执行.
// 能被立即执行的表达式,名字都会被忽略.
// 立即执行函数,一旦执行,引用被忽略.
// + 让函数声明变成表达式
+function three() {
console.log("three");
}();// 立即被执行
three();//报错
// 运算符可以 那么()也为运算符
(function four() {
console.log("four");
})();
(function five() {
console.log("five");
}());
(function () {
console.log("变成立即执行函数了吧");
}());
小问题
// 是否报错?
function test(a, b, c, d) {
console.log(a, b, c, d);
}(1, 2, 3, 4);
//次函数不会报错,程序编译时,不讲代码分开
function test(a, b, c, d) {
console.log(a, b, c, d);
}
(1, 2, 3, 4);