概念:
立即执行函数顾名思义就是函数定义好之后立即执行.
函数表达式方式:
函数表达式后面加括号 () 即可立即执行函数.
- var xmlhttpUtil = function () {
- function getText(url,callback){
- alert("dog");
- }();
名函数方式:
匿名函数不允许作为单独的语句直接出现于 JavaScript 中, 因此要想立即执行函数,
必须做出一些符合语法的改变: 方法 1, 是将匿名函数赋值给一个变量, 这就成了函数表达式, 可在其后加括号立即执行.
方法 2, 匿名函数外面套一个括号(这是 JS 语法允许的), 这就相当于成了函数表达式, 然后再在其后加括号即可立即执行.
- function(b){
- alert(b);
- })(321);
模块化:
由于函数内部的变量不会污染全局作用域, 因此立即执行函数可用于模块化, 很多第三方库都采用了这种方式.
- var xmlhttpUtil = function () {
- function getText(url,callback){
- var request=new XMLHttpRequest();
- request.open("GET",url);
- request.send(null);
- request.onreadystatechange=function(){
- if(request.readyState===4 && request.status===200){
- var type=request.getResponseHeader("Content-Type");
- if(type.match(/^text/))
- callback(request.responseText);
- alert(request.responseText);
- }
- else {
- }
- }
- }
- let xmlHttpRequestObj={};
- xmlHttpRequestObj.getText=getText;
- return xmlHttpRequestObj;
- }();
执行:
- xmlhttpUtil.getText("/dog",function () {
- alert("xmlhttprequest 请求响应!");
- });
JavaScript 立即执行函数与模块化了解更多
来源: http://www.qdfuns.com/article/51117/6bfaaa225db496a70c5491715a8b41c2.html