大家都知道,用prototype可以對(duì)一個(gè)類進(jìn)行擴(kuò)展,手動(dòng)的添加一些新的方法。
比如,
1.先定義一個(gè)類:
2.對(duì)Text類進(jìn)行擴(kuò)展:
3.調(diào)用:實(shí)例化一個(gè)Text對(duì)象,然后調(diào)用print1
4.但此時(shí)若不實(shí)例化,而是直接用Text調(diào)用print1(感覺像調(diào)用static方法一樣),則沒有反應(yīng)。
5.這讓我感覺到,用prototype進(jìn)行擴(kuò)展的方法,就好比面向?qū)ο笳Z言里的實(shí)例方法,只有類的實(shí)例才可調(diào)用。
那JavaScript中有沒有類似于static的方法呢?
6.回到第2步,不用prototype進(jìn)行擴(kuò)展,而是用"."進(jìn)行擴(kuò)展:
7.現(xiàn)在我再用實(shí)例t調(diào)用print1,沒有反應(yīng)!然后用Text類直接調(diào)用,卻成功了!
這說明:此時(shí)的print1,就是一個(gè)static方法,因此他只能被類調(diào)用,而實(shí)例則無法調(diào)用了。
總結(jié):JavaScript中,用prototype擴(kuò)展的方法是實(shí)例方法,而用"."擴(kuò)展的方法是類方法。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇