首先说什么是自调函数,我的理解就是JavaScript中匿名函数自己调用自己。代码运行到此立即执行,因此也叫立即执行函数。
匿名函数必须赋值给变量或者对象的属性或者传参,同理自调函数的返回值必须也要赋值给变量等即便返回空。开始列举自调函数的几种写法,装X进行时。
写法一:赋值给变量
var a = function(){return 1}();
相当于 var a = 1;
写法二:返回给void
void function() {return 1}();
相当于void 1;
写法三:作为参数传递
func(function() {return 1}());
相当于 func(1);
写法四:()分组
(function() {return 1} )();
相当于1
(function() {return 1} ());
相当于(1)
写法五:躲进if里
if (function(){return true}) {}
相当于 if( true ) {}
写法六:一元操作符
!function(){return true}(); 相当于 !true
~function(){return true}(); 相当于 !true
-function(){return true}(); 相当于 !true
+function(){return true}(); 相当于 !true
写法七:new 关键字
new function(){return } (); 相当于 {}
网友评论