匿名函数
了解!function()
和+function()
之前,需要先了解一下匿名函数。
什么是匿名函数
匿名函数,顾名思义是指没有名字的js函数,类似如下:
function(){
alert('hello siroi!');
}
但是,当你在控制台直接运行该函数时,会报Function statements require a function name
。
遇到这种情况时,我们需要用一组括号
( )将它们包起来。
(function (){
alert('hello siroi');
})
CV到控制台,控制台并没有报错。
匿名函数的执行
尽管控制台没有报错,但是如果不能运行这个函数,匿名函数的意义就没有了。运行匿名函数还是需要一组小括号(其实完全是JavaScript中小括号的意义决定)
。
小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值等于小括号的返回值
(function (){
alert('hello siroi');
})();
匿名函数的参数传递
(function (str){
alert('hello '+str);
})('siroi');
匿名函数的多次调用
如果想多次调用匿名函数
var a = (function(str){
alert('hello '+str);
})
a('siroi');
a('gpw');
同样也可以直接链式调用方法
(function(str){
alert(str);
return arguments.callee;//可以用于引用该函数的函数体内当前正在执行的函数
})('siroi')('gpw');
! ~ +
回到正题!function()
和+function()
都是匿名函数,只不过不常见了。
匿名函数的用途
匿名函数的用途很多,在页面加载一些js脚本
或者js效果
,匿名函数是个不错的选择。
关于我
为了实现上面的这篇文章中的聊天框,采用普通的方法js在加载一次后便不会加载,刷新页面也没有用。后采用匿名函数,立即执行简直太香了。
参考资料:https://www.w3cschool.cn/xqw2e7/u7z512vt.html
Comments | NOTHING