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

首頁 > 語言 > JavaScript > 正文

Javascript 面向對象 重載

2024-05-06 14:10:01
字體:
來源:轉載
供稿:網友
假如 我這樣定義:

代碼如下:
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在线一区二区三区 | 久久久国产精品成人免费 | 国产精品成aⅴ人片在线观看 | 亚洲日本韩国精品 | 在线看91 | 二区三区四区视频 | 日本不卡二区 | 欧美成年人视频在线观看 | 毛片在线不卡 | 超碰97最新 | 福利在线免费 | h久久| 国产一区二区三区四区波多野结衣 | 97超视频在线观看 | 日本欧美一区二区三区视频麻豆 | 久久里面有精品 | 日本精品一二区 | 免费观看一区二区三区视频 | 亚欧美一区二区 | av电影免费播放 | 成人福利在线 | 国产精品久久久久久久久久 | 成人国产精品久久久 | 一本一道久久久a久久久精品91 | 一级黄色影片在线观看 | 99在线热视频 | 黄色免费在线网站 | 中文字幕爱爱视频 | 日本高清视频网站www | 日韩精品二区 | 成年人在线免费 | 欧美亚洲另类在线 | 色诱亚洲精品久久久久久 | 免费在线国产 | 色中色激情影院 | 久久精品一区二区三区国产主播 | 成人免费网站在线观看视频 | 国产精品视频中文字幕 | 精品国产一区二区三区四区在线 | 亚洲精品在线观看免费 |