ES5中類與類的繼承

2021-09-25 03:40:42 字數 1534 閱讀 2619

//1、 es5中最簡單的類

function person() 

var p = new person(); //建立類

alert(p.name); // 網頁顯示

//es5中的建構函式和原型鏈裡面增加方法

function person()

} //原型鏈上面的屬性會被多個例項共享 建構函式不會

person.prototype.*** = '男'; // 原型鏈中增加方法

person.prototype.work = function ()

var p = new person(); //建立類

p.run(); //呼叫run方法

p.work(); //呼叫work方法

//2. es5類的繼承 (原型鏈與物件冒充的組合繼承模式)

function person() 

} person.prototype.*** = '男'; // 原型鏈中增加方法

person.prototype.work = function ()

web類繼承person類 (物件冒充繼承模式)

function web()

var w=new web();

w.run(); //物件冒充可以繼承建構函式的屬性和方法

w.work(); // 原型鏈上的不行。!!!

web類繼承person類 (原型鏈繼承模式)

function web() 

web.prototype = new person(); //原型鏈繼承類

var w = new web();

w.run(); //原型鏈可以繼承建構函式和原型鏈屬性和方法

w.work();

原型鏈與建構函式的結合方式

function person(name, age) 

} person.prototype.*** = '男'; // 原型鏈中增加方法

person.prototype.work = function ()

function web(name, age)

= new person(); //方法1:繼承person類

web.prototype = person.prototype; //方法2:直接繼承原型鏈父類即可

var w = new web('趙四', 20); //例項化子類無法給父類傳參。

w.run();

w.work();

ps:

1、es5類的建構函式與原型鏈,原型鏈上面的屬性可以被多個例項共享,建構函式不會。

2、es5類的繼承。原型鏈與物件冒充的繼承模式。

物件冒充模式:無法繼承父類原型鏈上的方法。

原型鏈模式:例項化子類無法給父類傳遞引數。

使用物件冒充與原型鏈結合模式繼承。

es5中的類 原型鏈 靜態方法 繼承

function person name,age 原型鏈上面的屬性和方法 原型鏈上繫結的屬性和方法和建構函式中的有什麼區別 原型鏈上的屬性和方法可以被多個例項共享 person.prototype.男 person.prototype.work function 靜態方法 person.setnam...

ES5和ES6類與繼承的區別聯絡

list item boolean number string array date function regexp error object 因為 es6 是先新建父類的例項物件this,然後再用子類的建構函式修飾this,使得父類的所有行為都可以繼承。例外 es6 改變了object建構函式的行...

ES5中的繼承(組合繼承)

es6中類的繼承使用extends關鍵字,那麼es5中是怎麼實現的呢?es5中採用建構函式和原型物件的組合方式模擬繼承,所以也稱為組合繼承 核心原理 通過call 借用父建構函式,並把父型別的this指向子型別的this 這種繼承,實際上是在呼叫子建構函式建立例項物件時,在子建構函式內呼叫了父建構函...