最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript 面向?qū)ο笾剌d

 更新時(shí)間:2010年05月04日 15:02:00   作者:  
在面向?qū)ο笳Z(yǔ)言里重載是很重要的一個(gè)特性,而JavaScript這個(gè)自稱面向?qū)ο蟮恼Z(yǔ)言竟然沒有直接提供重載的功能。
上幾節(jié)講了 JavaScript 面向?qū)ο笾臻g 、 javascript 面向?qū)ο蟮腏avaScript類 與 JavaScript 面向?qū)ο蟮闹接谐蓡T和公開成員 ,大家可以先看上面的再繼續(xù)往下看。


假如 我這樣定義:
復(fù)制代碼 代碼如下:

function getDate(){.....}
function getDate(date){.....}

那么后一個(gè)方法將覆蓋前一個(gè),雖然不報(bào)錯(cuò)。

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


那么JavaScript是怎么實(shí)現(xiàn)(準(zhǔn)確地講應(yīng)該叫“模擬”)的呢?。
答案很簡(jiǎn)單:arguments
arguments是JavaScript里的一個(gè)內(nèi)置對(duì)象,包含了調(diào)用者傳遞的實(shí)際參數(shù),但不局限于函數(shù)聲明所定義的參數(shù)列表,而調(diào)用時(shí)只它和數(shù)組一樣有個(gè)length屬性。 
   我們暫且把它當(dāng)“數(shù)組”來(lái)理解吧,我們根據(jù)該數(shù)組的長(zhǎng)度以及其元素的類型來(lái)選擇不同的實(shí)現(xiàn),從而模擬了重載?!?
   具體請(qǐng)看下面的示例:

復(fù)制代碼 代碼如下:

function getDate(){
if(arguments.length==0){
var date=new Date().toLocaleDateString();
return "您沒有輸入?yún)?shù),現(xiàn)在時(shí)間:"+date ;
}

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

}

于是我們可以這樣調(diào)用:
復(fù)制代碼 代碼如下:

getDate()
getDate(new Date())
getDate("星期一")

這樣就實(shí)現(xiàn)了JavaScript的重載,不過我們發(fā)現(xiàn)這樣的“實(shí)現(xiàn)”實(shí)在是太勉強(qiáng)了,如果參數(shù)多了,就會(huì)顯得力不從心,代碼也會(huì)很亂,到處是if{...} 。所以我不建議在JavaScript中使用這樣的重載。
  • javascript 寫類方式之六

    javascript 寫類方式之六

    這篇開始會(huì)分析流行的js庫(kù)之寫類方式。各種庫(kù)的寫類方式雖然千奇百怪,但仍然逃離不了本質(zhì)---用構(gòu)造函數(shù)和原型 來(lái)組裝類。
    2009-07-07
  • Javascript面向?qū)ο髷U(kuò)展庫(kù)代碼分享

    Javascript面向?qū)ο髷U(kuò)展庫(kù)代碼分享

    最近一直在用js做項(xiàng)目,遇到了許多需要應(yīng)用面向?qū)ο髞?lái)設(shè)計(jì)的功能,由于js對(duì)OOP的原生支持還不是很完善,所以就寫了一個(gè)面向?qū)ο蟮臄U(kuò)展庫(kù)用做底層支持,現(xiàn)在把它單獨(dú)整理出來(lái),完善了一些功能,在這里分享一下
    2012-03-03
  • javascript類繼承機(jī)制的原理分析

    javascript類繼承機(jī)制的原理分析

    本文著重解析javascript類繼承機(jī)制,讓你從底層了解javascript是怎樣實(shí)現(xiàn)“繼承”這一概念的。
    2009-09-09
  • JavaScript 三種創(chuàng)建對(duì)象的方法

    JavaScript 三種創(chuàng)建對(duì)象的方法

    JavaScript中對(duì)象的創(chuàng)建有以下幾種方式 使用內(nèi)置對(duì)象 使用JSON符號(hào) 自定義對(duì)象構(gòu)造。大家可以參考下。
    2009-10-10
  • Javascript 面向?qū)ο?命名空間

    Javascript 面向?qū)ο?命名空間

    作用主要為了防止類名沖突,相同的類名只要屬于不同的命名空間,便不會(huì)沖突。
    2010-05-05
  • Javascript 面向?qū)ο笾剌d

    Javascript 面向?qū)ο笾剌d

    在面向?qū)ο笳Z(yǔ)言里重載是很重要的一個(gè)特性,而JavaScript這個(gè)自稱面向?qū)ο蟮恼Z(yǔ)言竟然沒有直接提供重載的功能。
    2010-05-05
  • javascript new后的constructor屬性

    javascript new后的constructor屬性

    new后的constructor屬性使用說(shuō)明,需要的朋友可以參考下。
    2010-08-08
  • 最新評(píng)論

    莆田市| 邹城市| 鸡西市| 金秀| 乌拉特后旗| 太康县| 临江市| 陆川县| 花垣县| 雅江县| 大安市| 彰化县| 翼城县| 万全县| 东至县| 贵溪市| 连城县| 崇明县| 汾阳市| 宜兰县| 安达市| 博野县| 伊通| 聂拉木县| 思南县| 玉门市| 措勤县| 南澳县| 江孜县| 十堰市| 安泽县| 拉萨市| 禹州市| 格尔木市| 南康市| 双牌县| 忻州市| 香格里拉县| 竹溪县| 柳江县| 镇巴县|