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

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

解釋一下這段代碼的含義

解釋一下這段代碼的含義

眼眸繁星 2019-04-21 20:38:33
varninja={};addMethod(ninja,'whatever',function(a){console.log(arguments.length);});addMethod(ninja,'whatever',function(a,b){console.log(arguments.length);});addMethod(ninja,'whatever',function(){console.log(arguments.length);});functionaddMethod(object,name,fn){varold=object[name];object[name]=function(){if(fn.length==arguments.length)returnfn.apply(this,arguments);elseif(typeofold=='function')returnold.apply(this,arguments);};}ninja.whatever();這是一段出自《SecretsoftheJavaScriptNinja》的代碼,作者說(shuō)它的作用是實(shí)現(xiàn)函數(shù)的重載,但是對(duì)于整個(gè)的運(yùn)行過(guò)程我還是理解不透,麻煩懂的人解釋一下。
查看完整描述

2 回答

?
慕容森

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

這段代碼的作用就是實(shí)現(xiàn)函數(shù)的重載,首先你要了解一下什么是“函數(shù)的重載”,然后addMethod這個(gè)函數(shù)的第三個(gè)參數(shù)是一個(gè)函數(shù),但是參數(shù)的數(shù)量是不確定的,所以關(guān)鍵就在這~~~~~,在C++中,
intFun_Sum(intA,intB)
{
return(A+B);
}
floatFun_Sum(floatA,floatB)
{
return(A+B);
}
doubleFun_Sum(doubleA,doubleB)
{
return(A+B);
}
在JS中就是參數(shù)的數(shù)量不同,就搞一個(gè)重載。
JS中沒(méi)有重載,但是可以使用arguments間接的實(shí)現(xiàn)重載。
還有就是這里有一個(gè)apply的知識(shí)點(diǎn),這個(gè)google一下,或者樓上給出的網(wǎng)址就有對(duì)apply非常細(xì)致的講解。
我的理解是這個(gè)樣子,有什么錯(cuò)誤,歡迎大神指出,共同進(jìn)步
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-21
  • 2 回答
  • 0 關(guān)注
  • 352 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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