首先說(shuō)什么是自調(diào)函數(shù)暖眼,我的理解就是JavaScript中匿名函數(shù)自己調(diào)用自己哩至。代碼運(yùn)行到此立即執(zhí)行躏嚎,因此也叫立即執(zhí)行函數(shù)。
匿名函數(shù)必須賦值給變量或者對(duì)象的屬性或者傳參菩貌,同理自調(diào)函數(shù)的返回值必須也要賦值給變量等即便返回空卢佣。開始列舉自調(diào)函數(shù)的幾種寫法,裝X進(jìn)行時(shí)箭阶。
寫法一:賦值給變量
var a = function(){return 1}();
相當(dāng)于 var a = 1;
寫法二:返回給void
void function() {return 1}();
相當(dāng)于void 1;
寫法三:作為參數(shù)傳遞
func(function() {return 1}());
相當(dāng)于 func(1);
寫法四:()分組
(function() {return 1} )();
相當(dāng)于1
(function() {return 1} ());
相當(dāng)于(1)
寫法五:躲進(jìn)if里
if (function(){return true}) {}
相當(dāng)于 if( true ) {}
寫法六:一元操作符
!function(){return true}();? 相當(dāng)于 !true
~function(){return true}();? 相當(dāng)于 !true
-function(){return true}();? 相當(dāng)于 !true
+function(){return true}();? 相當(dāng)于 !true
寫法七:new 關(guān)鍵字
new function(){return } (); 相當(dāng)于 {}