JS重載實現(xiàn)方法分析
本文實例分析了JS重載實現(xiàn)方法。分享給大家供大家參考,具體如下:
重載是面向?qū)ο笳Z言里很重要的一個特性,JS中沒有真正的重載,是模擬出來的(因為js是基于對象的編程語言,不是純面向?qū)ο蟮?,它沒有真正的多態(tài):如繼承、重載、重寫)
一、什么時候用重載?
舉例:
function getDataTop10(){ alert("返回前10條數(shù)據(jù)"); }
后來需求改了,需要獲得20條數(shù)據(jù),而getDataTop10又被很多函數(shù)調(diào)用了,整體替換可以但麻煩,這時可以用重載
進而引出什么是重載:函數(shù)名相同,但是可以區(qū)分出來,想用哪個就用哪個,而不是后面的同名函數(shù)覆蓋前面的
二、怎么用?
arguments:Js里的一個內(nèi)置對象,包含了調(diào)用者傳遞的實際參數(shù)(函數(shù)聲明時定義的參數(shù)個數(shù)不影響)
function getData(){ alert("返回所有數(shù)據(jù)"); } function getDataTop(num){ alert("返回前"+num+"數(shù)據(jù)"); } function getDataLimit(num1,num2){ alert("返回前"+num1+"-"+num2+"數(shù)據(jù)"); } function getDste(){ var num=arguments.length; if(!num){ getData(); } else if(num==1){ getDataTop(arguments[0]); } else if(num==2){ getDataLimit(arguments[0],arguments[1]); } } getDste(5)
當參數(shù)很多時要寫一大串,遂可以改進
function getData(){ alert("返回所有數(shù)據(jù)"); } function getDataTop(num){ alert("返回前"+num+"數(shù)據(jù)"); } function getDataLimit(num1,num2){ alert("返回前"+num1+"-"+num2+"數(shù)據(jù)"); } function getDste(){ var num=arguments.length; if(!num){ getData(); } else if(num==1){ getDataTop.apply(this,arguments); } else if(num==2){ getDataLimit.apply(this,arguments); } } getDste(5)
如果參數(shù)個數(shù)相同,類型不同,又該如何
function getData(){ alert("返回所有數(shù)據(jù)"); } function getDataTop(num){ alert("返回前"+num+"數(shù)據(jù)"); } function getDataLimit(num1,num2){ alert("返回前"+num1+"-"+num2+"數(shù)據(jù)"); } function getDataByType(type){ alert("將返回"+type+"類型的數(shù)據(jù)"); } function getDste(){ var num=arguments.length; if(!num){ getData(); } else if(num==1){ if(typeof arguments[0]=="number"){ getDataTop.apply(this,arguments); } else{ getDataByType.apply(this,arguments); } } else if(num==2){ getDataLimit.apply(this,arguments); } } getDste("array")
三、好處
有利于合作開發(fā)
四、壞處
“實現(xiàn)”太勉強,如果參數(shù)過多,就要很多if語句,顯得代碼很亂
更多關于JavaScript相關內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
如何讓你的JavaScript函數(shù)更加優(yōu)雅詳解
在Js世界中有些操作會讓你無法理解,但是卻無比優(yōu)雅,下面這篇文章主要給大家介紹了關于如何讓你的JavaScript函數(shù)更加優(yōu)雅的相關資料,需要的朋友可以參考下2021-07-07JavaScript實現(xiàn)SHA-1加密算法的方法
這篇文章主要介紹了JavaScript實現(xiàn)SHA-1加密算法的方法,實例分析了使用javascript實現(xiàn)SHA-1加密算法的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03一個頁面放2段圖片滾動代碼出現(xiàn)沖突的問題如何解決
這是一段調(diào)用圖片流動的代碼?為什么我在首頁同時復制出二段代碼后圖片不能流動顯示了?遇此問題很是疑惑,于是搜集整理一些實用技巧以解大伙們的燃眉之急,需要了解的朋友可以參考下2012-12-12