建構函式的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函式繼承
- Javascript繼承2:建立即繼承—-建構函式繼承JavaScript繼承函式
- [JavaScript]原型、原型鏈、建構函式與繼承JavaScript原型函式繼承
- Java建構函式的繼承問題Java函式繼承
- 建構函式、原型、原型鏈、繼承函式原型繼承
- JavaScript物件導向之二(建構函式繼承)JavaScript物件函式繼承
- prototype實現繼承繼承
- js 使用建構函式和原型鏈實現繼承操作JS函式原型繼承
- es5建構函式,es6類和類的繼承函式繼承
- JavaScript中的函式繼承JavaScript函式繼承
- 區分:派生類指定基類建構函式、繼承構造、委託構造函式繼承
- 建構函式與解構函式函式
- 各種內建函式技巧總結函式
- 關於建構函式與解構函式的分享函式
- 建構函式與普通函式的區別函式
- js的繼承方法小結(prototype、call、apply)JS繼承APP
- C++知識點49——類繼承與類的構造、拷貝、operator=和解構函式C++繼承函式
- PHP筆記:建構函式與解構函式PHP筆記函式
- 在建構函式內使用call()或apply()實現繼承函式APP繼承
- C++ 派生類函式過載與虛擬函式繼承詳解C++函式繼承
- JavaScript 各種繼承方式優缺點對比JavaScript繼承
- JS 建構函式與類JS函式
- 類的建構函式和解構函式函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- 重構 - 用各種方式優化自己的函式庫優化函式
- js 原型鏈繼承__proto__、prototype簡析JS原型繼承
- 多繼承 與 多重繼承繼承
- 建構函式,拷貝賦值函式的N種呼叫情況函式賦值
- js的13種繼承JS繼承
- C和C++篇——各種各樣的函式C++函式
- ## 建構函式函式
- C++ 建構函式和解構函式C++函式
- 三種繼承方式繼承
- JavaScript中的六種繼承JavaScript繼承
- JavaScript的幾種繼承方式JavaScript繼承
- 一篇文章理解JS繼承——原型鏈/建構函式/組合/原型式/寄生式/寄生組合/Class extendsJS繼承原型函式
- JS原型鏈、prototype、__proto__、原型鏈繼承詳解JS原型繼承