JavaScript重載函數(shù)實(shí)例剖析
1.javascript 中是沒有重載函數(shù)這個概念的!
首先javascript是沒有重載函數(shù)這個概念的,很久以前,我用javascript做網(wǎng)頁的時候,寫一些簡單的效果,根本不需要用到重載函數(shù),當(dāng)寫游戲的時候,有大量的函數(shù)的時候,就想用重載函數(shù)了,沒想到j(luò)avascript不支持。
我們來簡單用兩種方式來"模擬"下重載函數(shù)。
2.根據(jù)參數(shù)的個數(shù)來判斷
javascript的函數(shù)中有一個叫arguments的變量,是記錄參數(shù)的一個數(shù)組,我們可以用這個來判斷參數(shù)的個數(shù),然后分別執(zhí)行不同的內(nèi)容,就是同一個函數(shù)可以有不同效果,跟C++等強(qiáng)類型語言的重載函數(shù)還是相差很大。你可以這樣寫,參數(shù)全部注釋掉,告訴使用函數(shù)者,這個函數(shù)最多支持3個參數(shù),具體參數(shù)在函數(shù)里面再獲取。支持重載函數(shù)的注釋一定要多寫點(diǎn),這樣會清晰些,最好附上調(diào)用例子。
/** * Return sum of a and b and less than limitNumber * @param {Number} a * @param {Number} b * @param {Number} limitNumber */ function add(/*a, b, limitNumber*/){ var a,b,limitNumber; a = arguments[0]; b = arguments[1]; if(arguments.length == 3){ limitNumber = arguments[2]; if(a + b > limitNumber){ return limitNumber; } } return a + b; }
3.根據(jù)參數(shù)類型不同來判斷
javascript有一個關(guān)鍵字叫typeof,可以判斷出一個變量的類型。
var temp = "say"; //string var temp = 1; //number var temp = undefined; //undefined var temp = null; //object var temp = {}; //object var temp = []; //object var temp = true; //boolean var temp = function (){} //function function testFunction(a){ if(typeof(a) == "number"){ //do something }else if(typeof(a) == "string"){ //do something } }
以上內(nèi)容是小編給大家介紹的javascript重載函數(shù)的相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧!
相關(guān)文章
JS的函數(shù)調(diào)用棧stack size的計(jì)算方法
本篇文章給大家分享了關(guān)于JS的函數(shù)調(diào)用棧stack size的計(jì)算方法的相關(guān)知識點(diǎn),有興趣的朋友參考學(xué)習(xí)下。2018-06-06詳解Javascript中document.execCommand()的用法以及指令參數(shù)列表
execCommand方法是執(zhí)行一個對當(dāng)前文檔,當(dāng)前選擇或者給出范圍的命令。在HTML5中,execCommand可以通過JavaScript代碼來調(diào)用,使得開發(fā)者可以在網(wǎng)頁中實(shí)現(xiàn)一些復(fù)雜的文本操作。在HTML編輯器中這個命令用得很多,酷炫的強(qiáng)大功能。2023-07-07支付寶小程序從手動埋點(diǎn)到自動埋點(diǎn)的實(shí)現(xiàn)過程
埋點(diǎn)的意思是在你想要的數(shù)據(jù)節(jié)點(diǎn)出進(jìn)行設(shè)置,可以方便進(jìn)行采集,下面這篇文章主要給大家介紹了關(guān)于支付寶小程序從手動埋點(diǎn)到自動埋點(diǎn)的相關(guān)資料,需要的朋友可以參考下2022-03-03JavaScript實(shí)現(xiàn)圖片本地預(yù)覽功能【不用上傳至服務(wù)器】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片本地預(yù)覽功能,針對非IE瀏覽器的HTML5濾鏡功能及IE瀏覽器的相關(guān)組件功能實(shí)現(xiàn)不上傳至服務(wù)器預(yù)覽本地圖片的效果,需要的朋友可以參考下2017-09-09echarts餅圖標(biāo)簽formatter使用及餅圖自定義標(biāo)簽
項(xiàng)目中有遇到需要使用餅圖展示每種狀態(tài)所占比例,去echarts官網(wǎng)學(xué)習(xí)了一番,下面這篇文章主要給大家介紹了關(guān)于echarts餅圖標(biāo)簽formatter使用及餅圖自定義標(biāo)簽的相關(guān)資料,需要的朋友可以參考下2022-12-12Bootstrap開關(guān)(switch)控件學(xué)習(xí)筆記分享
這篇文章主要為大家分享了Bootstrap開關(guān)(switch)控件學(xué)習(xí)筆記,介紹了Bootstrap開關(guān)(switch)控件的功能、使用說明,感興趣的小伙伴們可以參考一下2016-05-05