建構函式的prototype與各種繼承
function Animal(){
this.species = "小動物";
}
function Dog(name,age){
this.name = name;
this.age = age;
}
1/apply 建構函式繫結
function Dog(name,age){
Animal.apply(this, arguments);
this.name = name;
this.age = age;
}
var Dog1 = new Dog("狼狗","3");
alert(Dog1.species); // 小動物
2/prototype模式
Dog.prototype = new Animal();
Dog.prototype.constructor = Dog;
var Dog1 = new Dog("大毛","黃色");
alert(Dog1.species); // 動物
3/直接繼承prototype
function Animal(){ }
Animal.prototype.species = "小動物";
Dog.prototype = Animal.prototype;
Dog.prototype.constructor = Dog;
var Dog1 = new Dog("哈士奇","5");
alert(Dog1.species); // 小動物
4/利用空物件作為中介
一是直接繼承
var F = function(){};
F.prototype = Animal.prototype;
Dog.prototype = new F();
Dog.prototype.constructor = Dog;
二是寫一個公用的繼承方法
function extend(Child, Parent){
var F = function(){}
F.prototype = Parent.protptype
Child.prototype = new F()
Child.prototype.constructor = Child
Child.uber = Parent.prototype //以防萬一備用
}
使用:
extend(Dog,Animal);
var Dog1 = new Dog("哈士奇","5");
alert(Dog1.species); // 小動物
5/拷貝繼承
function extendBig(Child, Parent){
var p = Parent.prototype
var c = Child.prototype
for(var i in p){
c[i] = p[i]
}
c.uber = p
}
使用:
extend2(Dog, Animal);
var Dog1 = new Dog("藏獒","6");
alert(Dog1.species); // 小動物
相關文章
- js建構函式的繼承JS函式繼承
- 繼承中的建構函式繼承函式
- Java建構函式的繼承Java函式繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- C#建構函式繼承C#函式繼承
- [JavaScript]原型、原型鏈、建構函式與繼承JavaScript原型函式繼承
- Java建構函式的繼承問題Java函式繼承
- 建構函式的繼承問題 (轉)函式繼承
- 建構函式、原型、原型鏈、繼承函式原型繼承
- javascript建構函式的繼承簡單介紹JavaScript函式繼承
- 子類繼承父類的建構函式(方法)嗎?繼承函式
- JavaScript物件導向之二(建構函式繼承)JavaScript物件函式繼承
- javascript非建構函式繼承簡單介紹JavaScript函式繼承
- 繼承與派生,多繼承,函式過載,建構函式呼叫順序 靜態多型和動態多型繼承函式多型
- c# abstract抽象類與繼承類子類的建構函式_baseC#抽象繼承函式
- javascript物件導向程式設計的建構函式的繼承JavaScript物件程式設計函式繼承
- 關於C#中建構函式的繼承的問題C#函式繼承
- Javascript物件導向程式設計(二):建構函式的繼承JavaScript物件程式設計函式繼承
- prototype原型繼承的方法無法訪問函式的私有變數原型繼承函式變數
- prototype實現繼承繼承
- js 使用建構函式和原型鏈實現繼承操作JS函式原型繼承
- javascript物件導向程式設計的非建構函式的繼承JavaScript物件程式設計函式繼承
- es5建構函式,es6類和類的繼承函式繼承
- Javascript物件導向程式設計(三):非建構函式的繼承JavaScript物件程式設計函式繼承
- JavaScript中的函式繼承JavaScript函式繼承
- 在 C++ 中子類繼承和呼叫父類的建構函式方法C++繼承函式
- 在C++中子類繼承和呼叫父類的建構函式方法C++繼承函式
- c# 繼承派生類的預設建構函式的初始化次序C#繼承函式
- 建構函式與解構函式函式
- 關於建構函式與解構函式的分享函式
- 建構函式與普通函式的區別函式
- C++知識點49——類繼承與類的構造、拷貝、operator=和解構函式C++繼承函式
- JavaScript 各種繼承方式優缺點對比JavaScript繼承
- 《從零開始學Swift》學習筆記(Day43)——建構函式繼承Swift筆記函式繼承
- PHP筆記:建構函式與解構函式PHP筆記函式
- C++ 派生類函式過載與虛擬函式繼承詳解C++函式繼承
- 三種繼承的方法:public 繼承/private繼承/protected繼承詳解及區別繼承
- js的繼承方法小結(prototype、call、apply)JS繼承APP