什么是自运行函数?
顾名思义.就是不用调用,自己自动就会执行的函数;
为什么要用自运行函数?
自运行函数内部是一个独立的作用域,这样就保持了一个相对独立的命名空间,避免污染全局作用域
怎么创建自运行函数?
写法一:(function(param){…})(re—param);
写法二:(function(param){…}(re-param));
非主流写法:在函数体前使用“+”,“-”,“!”;如!function(param){...}(re-param)同”()“一样,这些符号的作用是将匿名函数或者函数声明转化为函数表达式;
举个栗子:
//写法一
(function(params) {
console.log(params)
})("呵呵");//呵呵
//使用+;
+function (params) {
console.log(params)
}("呵呵");//呵呵
// 使用-;
-function (params) {
console.log(params)
}("呵呵");//呵呵
// 使用!
!function (params) {
console.log(params)
}("呵呵");//呵呵
//写法二
(function (param){
console.log(param)
}("嘿嘿"));//嘿嘿
书写自运行函数的注意事项:
1.函数体后面必须要有(),表示立即执行嘛!
2.函数体必须是函数表达式而不是函数声明;
函数体是函数声明的形式:
举个栗子
(function Alert(param,param1){
console.log(param+param1)
})("Alibaba","Tecent");//不是说自运行函数,函数体不能使用函数声明嘛?为什么这里可以使用呢?,
//因为这里使用了()包裹着了函数体,将原函数声明转化为了函数表达式,同理其他符号也是一样
+function Alert(param, param1) {
console.log(param + param1)
}("Alibaba", "Tecent")