国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

推薦JavaScript實(shí)現(xiàn)繼承的最佳方式

2024-05-06 16:10:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
本文是介紹了實(shí)用call方法結(jié)合原型鏈方法來(lái)實(shí)現(xiàn)javascript繼承的最佳方式,非常的實(shí)用,有需要的小伙伴可以參考下
 
 

   實(shí)現(xiàn)JavaScript繼承的最簡(jiǎn)單的方式是call方法(或者apply方法)及原型鏈方法,但這兩種方法都有缺陷,而其混合體就是很好的繼承實(shí)現(xiàn)方式。下面舉例說(shuō)明:

 

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

function Animal(age){
    this.age = age;
}
Animal.prototype.sayAge = function(){
    window.alert("My age is "+this.age+"!");
};
function Dog(age,name){
    Animal.call(this,age);
    this.name = name;
}
Dog.prototype = new Animal();
Dog.prototype.sayName = function(){
    window.alert("I am a "+this.name+"!");
};
var dog = new Dog(15,"dog");
dog.sayName();
dog.sayAge();

 

    對(duì)于類(lèi)Animal來(lái)說(shuō),它有一個(gè)字段屬性age及函數(shù)屬性sayAge,sayAge方法的定義采用的是原型方式。Dog類(lèi)要繼承Animal,其字段屬性除了age外還有name,通過(guò)Animal.call(this,age);可以實(shí)現(xiàn)Dog繼承Animal的字段屬性age并將其初始化了。call方法的第一個(gè)參數(shù)為繼承的類(lèi)的this指針,第二個(gè)參數(shù)為Animal類(lèi)的構(gòu)造函數(shù)的參數(shù)。實(shí)際上,只是通過(guò)call方法就可以實(shí)現(xiàn)繼承,但唯一的要求是父類(lèi)的函數(shù)屬性要在構(gòu)造函數(shù)中定義,這對(duì)于這里的函數(shù)屬性使用原型方式定義來(lái)說(shuō)就不適合了(采用原型方式定義函數(shù)屬性比在構(gòu)造函數(shù)內(nèi)定義更直觀一些)。要想繼承Animal的原型方式定義的函數(shù)屬性,需要的語(yǔ)句就是“Dog.prototype = new Animal();”。而Dog類(lèi)中的sayName()函數(shù)則是其自身的函數(shù)屬性了。

 除了這個(gè)最經(jīng)典的實(shí)現(xiàn)繼承的方式外,目前還有一些免費(fèi)的庫(kù)可供使用。但想到形形色色的庫(kù),頭就大了,有時(shí)間有必要時(shí)再研究吧!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 北辰区| 十堰市| 永济市| 剑阁县| 洪雅县| 通城县| 岳阳县| 时尚| 阜平县| 赤壁市| 商都县| 雷州市| 崇明县| 莱西市| 渝中区| 呼玛县| 南雄市| 哈密市| 白城市| 镇赉县| 和硕县| 汉阴县| 安仁县| 河北区| 来凤县| 宜黄县| 苏尼特右旗| 晴隆县| 正镶白旗| 民权县| 时尚| 枣强县| 海宁市| 双牌县| 宜兰县| 中卫市| 马山县| 东源县| 大姚县| 阳西县| 思茅市|