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

首頁 > 語言 > JavaScript > 正文

js封裝可使用的構造函數繼承用法分析

2024-05-06 16:15:25
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js封裝可使用的構造函數繼承用法,實例分析了使用屬性拷貝來實現拷貝繼承的技巧,需要的朋友可以參考下
 

本文實例講述了js封裝可使用的構造函數繼承用法。分享給大家供大家參考。具體如下:

先來看下面這段代碼

(YUI)庫所用的方法:

復制代碼代碼如下:
function extend(Child, Parent) {

 

    var F = function(){};
    F.prototype = Parent.prototype;
    Child.prototype = new F();
    Child.prototype.constructor = Child;
    Child.uber = Parent.prototype;
}

 

另外還有一種拷貝繼承方法,屬性拷貝:

這種方法與之前的不同,由于已經完成對child的原型進行擴展,不需要再重置child.prototype.constructor屬性了,因為它不會再被覆蓋。

與之前的方法相比,這個方法在效率上顯然略孫一籌。因為這里執行的是對子對象原型的逐一拷貝。而非簡單的原型鏈查詢。

這種方式僅適用只包含基本數據類型的對象,所有的對象類型包括函數和數組,都是不可復制的,他們只支持引用傳遞。

復制代碼代碼如下:
function extend2(Child, Parent) {
    var p = Parent.prototype;
    var c = Child.prototype;
    for (var i in p) {
      c[i] = p[i];
      }
    c.uber = p;
}

 

var Shape = function(){}
var TwoDShape = function(){}
Shape.prototype.name = 'shape';
Shape.prototype.toString = function(){
 return this.name;
}
extend2(TwoDShape,Shape);
var t = new TwoDShape();
t.name
//-->"shape"
t.toString();
//-->"shape"
TwoDShape.prototype.name = 'TwoDShape';
t.name
//-->"2d shape"
t.toString();
//-->"2d shape"

TwoDShape.prototype.toString === Shape.prototype.toString
//-->true
TwoDShape.prototype.name === Shape.prototype.name
//-->false

 

希望本文所述對大家的javascript程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 柳河县| 神池县| 昭通市| 吴堡县| 巴林左旗| 临海市| 通城县| 城固县| 措勤县| 堆龙德庆县| 甘肃省| 阳东县| 友谊县| 武汉市| 嵊泗县| 沙湾县| 福清市| 潼关县| 平遥县| 淅川县| 景洪市| 秦皇岛市| 修文县| 廊坊市| 禹城市| 易门县| 阿拉尔市| 南和县| 大石桥市| 马鞍山市| 集贤县| 张家口市| 沙湾县| 阿坝县| 湖南省| 乌什县| 博爱县| 徐水县| 上栗县| 永平县| 阿合奇县|