即时函数是匿名函数的另一种应用。什么是即时函数?即时函数就是函数在定义后可以被立即调用。
我们先来看看即时函数的基本形式:
(function (){ alert (“hello word !”);)();
上面的函数就是一个最简单的即时函数。函数体为匿名函数,由圆括号包裹。圆括号后跟着另一个圆括号,表示立即调用,同时这个圆括号也是我们给匿名函数传递参数的地方。
(function (name){ alert("hello "+name+"!");})("JSindexHTML");
我们将立即调用圆括号直接放在匿名函数后面也是有效的:
(function (){
alert("hello word !")
}());
即时调用匿名函数的好处是不会产生全局变量,缺点是函数无法重复执行。所以即时函数非常适合执行一些一次性的或者初始化的任务。
如果需要即时函数返回值,可以使用函数表达式直接将即时函数赋值给变量:
let result=(
function(name){
return "hello "+name+"!";
})("JSindexHTML");
console.log(result);//hello JSindexHTML!
使用函数表达创建匿名函数时,包裹匿名函数的大括号是可以省略起来,所以我们可以将即时调用函数改为下面这种形式:
let result=function(name){
return "hello "+name+"!";
} ("JSindexHTML");
console.log(result);//hello JSindexHTML!
当然使用函数表达式创建的匿名函数可读性比较差,只有读完函数才能知道该函数是否是匿名函数。
关注我,和我一起学JavaScript!
领取专属 10元无门槛券
私享最新 技术干货