摘要:目前,以下多種方式中,只能理解第一種和第二種,其他都不明白原理,各位大神能不能解釋下方式,調(diào)用函數(shù),得到返回值。強(qiáng)制運(yùn)算符使函數(shù)調(diào)用執(zhí)行方式,調(diào)用函數(shù),得到返回值。
目前,以下多種方式中,只能理解第一種和第二種,其他都不明白原理,各位大神能不能解釋下?
方式1,調(diào)用函數(shù),得到返回值。強(qiáng)制運(yùn)算符使函數(shù)調(diào)用執(zhí)行
javascript(function(x,y){ alert(x+y); return x+y; }(3,4));
方式2,調(diào)用函數(shù),得到返回值。強(qiáng)制函數(shù)直接量執(zhí)行再返回一個(gè)引用,引用再去調(diào)用執(zhí)行
javascript(function(x,y){ alert(x+y); return x+y; })(3,4);
這種方式也是很多庫愛用的調(diào)用方式,如jQuery,Mootools。
方式3,使用void
javascriptvoid function(x) { x = x-1; alert(x); }(9);
方式4,使用-/+運(yùn)算符
javascript-function(x,y){ alert(x+y); return x+y; }(3,4); +function(x,y){ alert(x+y); return x+y; }(3,4); --function(x,y){ alert(x+y); return x+y; }(3,4); ++function(x,y){ alert(x+y); return x+y; }(3,4);
方式5,使用波浪符(~)
javascript~function(x, y) { alert(x+y); return x+y; }(3, 4);
方式6,匿名函數(shù)執(zhí)行放在中括號(hào)內(nèi)
javascript[function(){ console.log(this) // 瀏覽器得控制臺(tái)輸出window }(this)]
方式7,匿名函數(shù)前加typeof
javascripttypeof function(){ console.log(this) // 瀏覽器得控制臺(tái)輸出window }(this)
方式8,匿名函數(shù)前加delete
javascriptdelete function(){ console.log(this) // 瀏覽器得控制臺(tái)輸出window }(this)
方式9,匿名函數(shù)前加void
javascriptvoid function(){ console.log(this) // 瀏覽器得控制臺(tái)輸出window }(this)
方式10,使用new方式,傳參
javascriptnew function(win){ console.log(win) // window }(this)
方式11,使用new,不傳參
javascriptnew function(){ console.log(this) // 這里的this就不是window了 }
方式12,逗號(hào)運(yùn)算符
javascript1, function(){ console.log(this) // window }();
方式13,按位異或運(yùn)算符
javascript1^function(){ console.log(this) // window }();
方式14,比較運(yùn)算符
javascript1>function(){ console.log(this) // window }();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87585.html
摘要:主要區(qū)別是需要在聲明模塊時(shí)指定所有的依賴,通過形參傳遞依賴到模塊內(nèi)容中。 前言 昨天,公司同事問了我如下一個(gè)問題: showImg(https://segmentfault.com/img/bVWXYP?w=548&h=346); 說他在看一個(gè)插件時(shí),看到了源碼結(jié)構(gòu)如截圖所示,他知道(function(){})()是一種立即執(zhí)行函數(shù),但是在截圖中,最后的那個(gè)圓括號(hào)里又寫了一個(gè)函數(shù)fun...
摘要:在中通過關(guān)鍵字方式調(diào)用的函數(shù)都被認(rèn)為是構(gòu)造函數(shù)。這個(gè)新創(chuàng)建的對(duì)象的被指向到構(gòu)造函數(shù)的。上的方法不起效果當(dāng)然你要是這樣的形式指定了返回的內(nèi)容,它自然會(huì)原樣返回啦工廠模型為了不使用關(guān)鍵字,構(gòu)造函數(shù)必須顯式的返回一個(gè)值。 個(gè)人博客原址 函數(shù) 函數(shù)式一塊javascript代碼,定義一次,可以被多次調(diào)用與執(zhí)行,JS中的函數(shù)也是對(duì)象,所以JS函數(shù)可以像其他對(duì)象那樣操作,和傳遞,所以也稱函數(shù)對(duì)象函...
摘要:但是閉包也不是什么復(fù)雜到不可理解的東西,簡(jiǎn)而言之,閉包就是閉包就是函數(shù)的局部變量集合,只是這些局部變量在函數(shù)返回后會(huì)繼續(xù)存在??上У氖牵]有提供相關(guān)的成員和方法來訪問閉包中的局部變量。 (收藏自 技術(shù)狂) 前言:還是一篇入門文章。Javascript中有幾個(gè)非常重要的語言特性——對(duì)象、原型繼承、閉包。其中閉包 對(duì)于那些使用傳統(tǒng)靜態(tài)語言C/C++的程序員來說是一個(gè)新的語言特性。本文將...
摘要:可以看到,第三個(gè)參數(shù)是回調(diào)函數(shù),可以直接使用依賴的模塊,他們按依賴聲明順序作為參數(shù)提供給回調(diào)函數(shù)。結(jié)論規(guī)范是開發(fā)的一次重要嘗試,它以簡(jiǎn)單而優(yōu)雅的方式統(tǒng)一了的模塊定義和加載機(jī)制,并迅速得到很多框架的認(rèn)可和采納。 1. AMD的由來 前端技術(shù)雖然在不斷發(fā)展之中,卻一直沒有質(zhì)的飛躍。除了已有的各大著名框架,比如Dojo,jQuery,ExtJs等等,很多公司也都有著自己的前端開發(fā)框架。這些...
摘要:在中,一個(gè)未使用明確標(biāo)識(shí)符的函數(shù)被稱為一個(gè)匿名函數(shù)。記住在中,由關(guān)鍵字聲明的變量是一個(gè)局部變量,而忽略了這個(gè)關(guān)鍵字則會(huì)創(chuàng)建一個(gè)全局變量。函數(shù)被賦值給一個(gè)局部變量,在外部無法訪問它。這個(gè)函數(shù)表達(dá)式的變種被稱為一個(gè)命名的函數(shù)表達(dá)式。 本文是@堂主 對(duì)《Pro JavaScript with Mootools》一書的第二章函數(shù)部分知識(shí)點(diǎn)講解的翻譯。該書的作者 Mark Joseph Obce...
閱讀 2190·2021-09-22 10:56
閱讀 1492·2021-09-07 10:11
閱讀 1813·2019-08-30 15:54
閱讀 2299·2019-08-30 15:44
閱讀 2318·2019-08-29 12:40
閱讀 3040·2019-08-28 18:25
閱讀 1750·2019-08-26 10:24
閱讀 3195·2019-08-23 18:39