麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

Javascript 面向對象之重載

2024-05-06 14:10:11
字體:
來源:轉載
供稿:網友
上幾節講了 JavaScript 面向對象之命名空間 、 javascript 面向對象的JavaScript類 與 JavaScript 面向對象的之私有成員和公開成員 ,大家可以先看上面的再繼續往下看。


假如 我這樣定義:
代碼如下:
function getDate(){.....}
function getDate(date){.....}

那么后一個方法將覆蓋前一個,雖然不報錯。

但是我們確實是可以實現重載的,如果你用過jQuery,你就會深有體會,比如$("#btn").val() 是獲取id為"btn"的按鈕的value值,而$("#btn").val("點我")則是給id為"btn"的按鈕賦值。


那么JavaScript是怎么實現(準確地講應該叫“模擬”)的呢?。
答案很簡單:arguments
arguments是JavaScript里的一個內置對象,包含了調用者傳遞的實際參數,但不局限于函數聲明所定義的參數列表,而調用時只它和數組一樣有個length屬性。 
   我們暫且把它當“數組”來理解吧,我們根據該數組的長度以及其元素的類型來選擇不同的實現,從而模擬了重載。 
   具體請看下面的示例:

代碼如下:
function getDate(){
if(arguments.length==0){
var date=new Date().toLocaleDateString();
return "您沒有輸入參數,現在時間:"+date ;
}

if(arguments.length==1){
if(arguments[0].constructor ==Date){
return "您輸入的參數是Date類型,現在時間是:"+arguments[0].toDateString();
}
if(arguments[0].constructor ==String){
return "您輸入的參數是String類型,現在時間是:"+arguments[0];
}
}

}

于是我們可以這樣調用:
代碼如下:
getDate()
getDate(new Date())
getDate("星期一")

這樣就實現了JavaScript的重載,不過我們發現這樣的“實現”實在是太勉強了,如果參數多了,就會顯得力不從心,代碼也會很亂,到處是if{...} 。所以我不建議在JavaScript中使用這樣的重載。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产精品av久久久久久网址 | 最新久久免费视频 | 午夜精品久久久久久中宇 | 欧美69free性videos| 国产一级αv片免费观看 | 老子午夜影院 | 羞羞视频免费网站含羞草 | 一级做a爱片性色毛片高清 国产精品色在线网站 | 国产在线看一区 | 免费黄色成人 | 日本免费不卡一区二区 | 国产精品一区二av18款 | 欧洲精品视频在线观看 | 欧美三级欧美成人高清www | av色先锋 | 国产精品高清一区 | 沉沦的校花奴性郑依婷c到失禁 | h色视频在线观看 | 免费毛片视频播放 | 成人午夜免费网站 | 国产日韩a| 天天看成人免费毛片视频 | 国产精品免费视频观看 | av在线影片 | 免费国产人成网站 | 久久福利在线 | 欧洲精品视频在线观看 | 大逼逼影院 | 久久精品视频在线看99 | 毛片在线免费观看视频 | 男女羞羞视频在线免费观看 | 亚洲骚图 | 久久久久久久久久久av | 九九精品视频免费 | 国产精品麻豆91 | 亚洲福利视 | 中文字幕在线一 | 欧美精品一区二区三区久久久 | 91香蕉影视 | 精品不卡| 亚州精品在线视频 |