欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript立即执行函数

程序员文章站 2022-07-17 12:17:33
概念:立即执行函数顾名思义就是函数定义好之后立即执行。函数表达式方式:函数表达式后面加括号()即可立即执行函数。 var xmlhttpUtil = function () { function getText(url,callback){ alert("dog"); }(); 匿名函数方式:匿名函... ......
概念:
立即执行函数顾名思义就是函数定义好之后立即执行。
函数表达式方式:
函数表达式后面加括号()即可立即执行函数。

  

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请求响应!");
});