這篇“javascript怎么實現(xiàn)函數(shù)重載”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“javascript怎么實現(xiàn)函數(shù)重載”文章吧。
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),寶豐企業(yè)網(wǎng)站建設(shè),寶豐品牌網(wǎng)站建設(shè),網(wǎng)站定制,寶豐網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,寶豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
javascript可以實現(xiàn)函數(shù)重載。在javascript函數(shù)內(nèi)部有一個arguments對象,可以通過arguments對象獲取參數(shù)列表,判定參數(shù)的個數(shù)使用不同的方法來模擬函數(shù)重載效果。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
JavaScript的函數(shù)支持重載嗎?可以實現(xiàn)函數(shù)重載嗎?對于這個問題,主要有兩個點,第一,JavaScript的函數(shù);第二,重載。
首先,說一下重載。所謂重載,簡單說,就是函數(shù)或者方法有相同的名稱,但是參數(shù)列表不相同的情形,這樣的同名不同參數(shù)的函數(shù)或者方法之間,互相稱之為重載函數(shù)或者方法。所以說,重載主要需要兩點:第一,同樣的函數(shù)名。第二,不同的函數(shù)參數(shù)。
明確了重載的定義之后,我們再回到JavaScript這里。追本溯源,現(xiàn)在一說到JavaScript,我們就可以聯(lián)想到ECMAScript,即JavaScript的標(biāo)準(zhǔn)。那么,這個標(biāo)準(zhǔn)里面對函數(shù)做出了那些規(guī)范呢?
首先,ECMAScript是沒有函數(shù)簽名的概念的,因為其參數(shù)是由包含零或多個值的數(shù)組來表示的。而沒有函數(shù)簽名,真正的重載是不可能做到的。
其次,如果在ECMAScript中定義了兩個名字相同的函數(shù),則該名字只屬于后定義的函數(shù),如下:
function add(num){ return num+1; } function add(num){ return num+2; } var result = add(4); //結(jié)果為6
在上面的例子中,add()函數(shù)被定義了兩次,然而,當(dāng)我們調(diào)用他的時候,卻直接調(diào)用了第二個函數(shù),這說明在JavaScript中,后定義的函數(shù)會覆蓋先定義的函數(shù)。
說到這里,是不是就可以判定JavaScript不支持函數(shù)重載了呢?
讓我來介紹一下JavaScript里面的一個arguments對象。首先,ECMAScript函數(shù)的參數(shù)與其他語言的函數(shù)參數(shù)有一點不同。ECMAScript函數(shù)不介意傳進(jìn)來的參數(shù)個數(shù)和類型。也就是說,在你定義了函數(shù)只接受兩個參數(shù)之后,你仍然可以在調(diào)用的時候傳遞零或多個參數(shù)。這并不會報錯。原因就在于arguments對象。ECMAScript中,函數(shù)的參數(shù)始終是存放在一個數(shù)組中,而通過arguments對象,就可以訪問到這個數(shù)組。所以,只需要使用length屬性就可以確定調(diào)用函數(shù)時傳遞了多少個參數(shù)。
說到這里,我們可以來嘗試這樣寫:
function add(num1, num2){ if(arguments.length == 1){ alert("你輸入的只有一個數(shù)字:"+arguments[0]+" 請重新輸入"); }else if(arguments.length == 2){ alert("你輸入數(shù)字的和為:" + arguments[0]+arguments[1]); } }
通過這個例子,我們可以看出,通過檢查傳入函數(shù)中參數(shù)的數(shù)量,JavaScript函數(shù)可以做出不同的反應(yīng),這可以間接達(dá)到重載的目的。
所以,JavaScript是可以模仿函數(shù)的重載的。
以上就是關(guān)于“javascript怎么實現(xiàn)函數(shù)重載”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:javascript怎么實現(xiàn)函數(shù)重載
URL標(biāo)題:http://aaarwkj.com/article20/godcjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、面包屑導(dǎo)航、微信公眾號、關(guān)鍵詞優(yōu)化、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)