JS繼承重識

2021-09-29 01:51:46 字數 2519 閱讀 4281

例如基本形式如下:

function supertype() 

function subtype()

//繼承了 supertype

subtype.prototype = new supertype();

var instance1 = new subtype();

instance1.colors.push("black");

alert(instance1.colors); //"red,blue,green,black"

var instance2 = new subtype();

alert(instance2.colors); //"red,blue,green,black"

function supertype() 

function subtype()

var instance1 = new subtype();

instance1.colors.push("black");

alert(instance1.colors); //"red,blue,green,black"

var instance2 = new subtype();

alert(instance2.colors); //"red,blue,green"

借助建構函式繼承傳參:

function supertype(name) 

function subtype()

var instance = new subtype();

alert(instance.name); //"nicholas";

alert(instance.age); //29

使用原型鏈實現對原型屬性和方法的繼承,而通過借用建構函式來實現對例項屬性的繼承。這樣,既通過在原型上定義方法實現了函式 復用,又能夠保證每個例項都有它自己的屬性。例如:

function supertype(name) 

supertype.prototype.sayname = function();

function subtype(name, age)

//繼承方法

subtype.prototype = new supertype();

subtype.prototype.constructor = subtype;

subtype.prototype.sayage = function();

var instance1 = new subtype("nicholas", 29);

instance1.colors.push("black");

alert(instance1.colors); //"red,blue,green,black"

instance1.sayname(); //"nicholas";

instance1.sayage(); //29

var instance2 = new subtype("greg", 27);

alert(instance2.colors); //"red,blue,green"

instance2.sayname(); //"greg";

instance2.sayage(); //27

function object(o) 

f.prototype = o;

return new f();

}var person = ;

var anotherperson = object(person);

anotherperson.name = "greg";

anotherperson.friends.push("rob");

var yetanotherperson = object(person);

yetanotherperson.name = "linda";

yetanotherperson.friends.push("barbie");

alert(person.friends); //"shelby,court,van,rob,barbie"

function createanother(original); 

return clone; //返回這個物件

}

function supertype(name) 

supertype.prototype.sayname = function();

function subtype(name, age)

subtype.prototype = new supertype(); //第一次呼叫 supertype()

subtype.prototype.constructor = subtype;

subtype.prototype.sayage = function();

JS中的繼承,重點 聖杯模式

1.原型鏈的繼承 grand.prototype.lastname ji function grand var grand new grand father.prototype grand function father var father new father son.prototype fat...

java 繼承 重寫

package inheritance.override 1 先開闢空間 2 再呼叫構造器 父類宣告賦值 父類構造器 子類宣告賦值 子類構造器 3 返回位址 屬性 就近原則 父類中的方法 如果重寫 找重寫,沒有重寫 找父類 新增不可見 先編譯後執行 編譯 從 所屬的當前類中向上找object 就近最...

繼承 重寫 super

繼承 extends,子類自動擁有父類的所有可繼承的屬性和方法。只支援單繼承,不可多重繼承,如 extends a,b 是錯誤的。可以多層繼承。重寫 子類重寫父類的方法時,不能使用比父類中被重寫的方法更嚴格的訪問許可權。super 1 呼叫父類成員變數 成員方法 super.成員變數 super.成...