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

首頁 > 編程 > JavaScript > 正文

javascript關于繼承解析

2019-11-20 10:06:44
字體:
來源:轉載
供稿:網友

上一篇已介紹了組合繼承,現在講講剩余的幾種繼承。

原型式繼承

調用一個函數,接收這個函數返回來的對象,這個對象的原型就是傳入函數的參數對象。

如:

function  personObject(o){    function F(){}    F.prototype = o;    return new F();}var person = {   name:"Nicholas",   friends:["Shelby","Court","Van"]}var person_one = personObject(person);

從上面的代碼中,我們知道person是person_one的原型。ES5中添加了一個方法規范化原型式繼承,這個方法是Object.create(),這個方法有兩個參數,第一個是作為新對象原型的對象,像上面的person,第二個是為新對象定義額外屬性的對象。第二個參數可選。

如:

var person_one = Object.create(person, {        name: {            value:"Jon"      }});

當你只想讓一個對象與另一個對象保持類似時,可以使用原型式繼承。

寄生式繼承   

在一個函數里實現一次原型式繼承,然后為接收到的這個對象添加自己的屬性與方法。

如:

function createAnother(o){   var person_one = personObject(o);   person_one.sayHi = function(){       alert(" hi ");   }   return person_one;}

寄生組合式繼承

組合繼承也有其缺點,它實現了兩次屬性繼承,而寄生組合式繼承就避免了這個問題。實例通過構造函數繼承了屬性,而原型的方法則是通過寄生式繼承的方式來繼承。

如:

function inherit(subType, superType){   var prototype = Object(superType.prototype);   prototype.constructor = subType;   subType.prototype = prototype;}

通過調用上面的函數,實現subTye.prototype的原型是superType.prototype,完成了原型方法的繼承。

以上這篇javascript關于繼承解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔江区| 德令哈市| 都匀市| 东乌珠穆沁旗| 万山特区| 那坡县| 富锦市| 壤塘县| 吴桥县| 建德市| 化隆| 安福县| 全椒县| 辽中县| 靖远县| 文水县| 抚顺市| 青岛市| 南郑县| 洪江市| 天长市| 宁乡县| 青河县| 泗水县| 彰化县| 北票市| 浦北县| 丹寨县| 龙川县| 华容县| 金溪县| 庆元县| 凉城县| 博客| 金堂县| 磐石市| 苍梧县| 斗六市| 保定市| 保定市| 册亨县|