第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript的()()原理是什么

JavaScript的()()原理是什么

蝴蝶不菲 2019-04-23 15:12:52
比如(function(){console.log(1);})()這里把function包起來的()的用處和原理,和最后的()運(yùn)行上一個(gè)函數(shù),他的原理是什么,為什么會(huì)運(yùn)行上一個(gè)函數(shù)表達(dá)式。還有+function(){console.log(2);//同時(shí)返回NaN}()-function(){console.log(3);//同時(shí)返回NaN}()!function(){console.log(4);//返回true}()為什么會(huì)返回NaN和true?為什么只有+-!可以運(yùn)行,其他的卻不行,會(huì)報(bào)錯(cuò)?有沒有其他辦法來運(yùn)行匿名函數(shù),不用下面的方式,也就是在最后不使用()(function{...}())()+function(){...}()-function(){...}()來運(yùn)行匿名函數(shù)的方法
查看完整描述

2 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

其實(shí)能這樣寫的原因,是因?yàn)閖avascript的function是第一類對(duì)象,即function可以賦值給變量
functiondemo(){
console.log('demo');
}
demo();//demo
我們只是在這個(gè)變量的后面加上對(duì)括號(hào),為什么能執(zhí)行這個(gè)函數(shù)呢?因?yàn)檫@個(gè)demo指向了一個(gè)函數(shù),所以我們是間接的執(zhí)行了函數(shù)
了解了上面的一點(diǎn)后,我們知道javascript是面向?qū)ο蟮淖兂烧Z言,但是它也可以實(shí)現(xiàn)部分的函數(shù)式編程特性。
舉個(gè)例子,有兩個(gè)函數(shù),分別是讓兩個(gè)數(shù)相加和求一個(gè)數(shù)的平方
functionadd(a,b){
returna+b;
}
functionsquare(x){
returnx*x;
}
那么我們調(diào)用的時(shí)候,是這樣調(diào)用的
square(add(2,3));
但是呢,這樣看著挺不清爽的,利用js的函數(shù)式編程特性,我們可以這么寫
functionaddToSquare(a,b){
varx=a+b;
returnfunction(){
returnx*x;
}
}
addToSquare(2,3)();//25
后面的小括號(hào)同樣是執(zhí)行,執(zhí)行前面的函數(shù)返回的一個(gè)函數(shù),體現(xiàn)了函數(shù)的傳遞性~函數(shù)式編程。
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-23
  • 2 回答
  • 0 關(guān)注
  • 309 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)