摘要:中的繼承類繼承實(shí)現(xiàn)繼承改變這樣不是繼承,和變成了兄弟關(guān)系正確做法一,兒子的原型原型鏈指向父親的原型正確做法二,類繼承找不到就拿父級的
js中的繼承
ES5 prototype
Parent.prototype.__proto = Child.prototype
Object.setPrototypeOf( Child.prototype, Parent.prototype )
ES6 class
類繼承
ES5 prototype 實(shí)現(xiàn)繼承function Parent(){ this.name = "parent name"; } Parent.prototype.eat = function(){ consle.log(‘parent eat"); } function Child(){ Parent.call(this);// 改變 this this.name = "child name"; } Child.prototype = Parent.prototype; // 這樣不是繼承,Parent 和 Child 變成了兄弟 關(guān)系 // 正確做法 一 , 兒子的原型 原型鏈 指向 父親的原型 Child.prototype.__proto__ = Parent.prototype; // 正確做法 二 , Object.setPrototypeOf( Child.prototype, Parent.prototype ); let child = new Child(); console.log(child.name);// parent name child.eat(); // parent eatclass 類繼承
class Parent{ constructor(){ this.name = "parent name"; } eat(){ console.log("parent eat") } } class Child extends Parent{ constructor(){ super(); consle.log(this)// child } } let child = new Child(); console.log(child.name) // parent name , Child 找不到就拿父級的 child.eat()// parent eat
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102361.html
摘要:此用來定義通過構(gòu)造器構(gòu)造出來的對象的原型,構(gòu)造器內(nèi)部的代碼用來給對象初始化。 對象繼承 VS 類繼承 在 class-based 的面向?qū)ο蟮氖澜缋铮霈F(xiàn)對象,必須先有類。類之間可以繼承,類再使用 new 操作創(chuàng)建出實(shí)體,父子對象之間的繼承體現(xiàn)在父類和子類上。你不能說 對象 a 繼承了對象 b,只能說 class A 繼承了 class B,然后他們各自有一個實(shí)例a、b。 JS中實(shí)現(xiàn)...
摘要:首先捋清楚類和對象的關(guān)系類比如人類,指的是一個范圍對象比如某個人,指的是這個范圍中具體的對象中的作為構(gòu)造函數(shù)時,就是一個類,通過操作符,可以返回一個對象。 JS中的類與類的繼承 我們知道,JS中沒有類或接口的概念,即不能直接定義抽象的類,也不能直接實(shí)現(xiàn)繼承。不過,為了編程的方便,我們可以在 JS 中模擬類和繼承的行為。首先捋清楚類和對象的關(guān)系: 類:比如人類,指的是一個范圍; ...
摘要:的繼承方式屬于原型式繼承,非常靈活。當(dāng)使用關(guān)鍵字執(zhí)行類的構(gòu)造函數(shù)時,系統(tǒng)首先創(chuàng)建一個新對象,這個對象會繼承自構(gòu)造函數(shù)的原型對象新對象的原型就是構(gòu)造函數(shù)的屬性。也就是說,構(gòu)造函數(shù)用來對生成的新對象進(jìn)行一些處理,使這個新對象具有某些特定的屬性。 繼承這個東西在Javascript中尤其復(fù)雜,我掌握得也不好,找工作面試的時候在這個問題上栽過跟頭。Javascript的繼承方式屬于原型式繼承,...
摘要:對象經(jīng)典對象創(chuàng)建與繼承模式組合模式創(chuàng)建對象中創(chuàng)建一個對象的方式多種多樣,每種方式都有自己缺點(diǎn)或者優(yōu)點(diǎn),具體的可以參考而組合使用構(gòu)造函數(shù)模式和原型模式來創(chuàng)建自定義類型算是最常見的方式了。 title: JS對象(3)經(jīng)典對象創(chuàng)建與繼承模式 date: 2016-09-28 tags: JavaScript 0x01 組合模式創(chuàng)建對象 JS 中創(chuàng)建一個對象的方式多種多樣,...
摘要:原型對象是由創(chuàng)建的,因此原型對象的構(gòu)造函數(shù)是構(gòu)造函數(shù)也可以是稱為對象,原型對象也就繼承了其生父構(gòu)造函數(shù)中的數(shù)據(jù),也同時繼承了原型對象的數(shù)據(jù)。當(dāng)然這條原型鏈中的數(shù)據(jù),會被還是還是這類構(gòu)造函數(shù)繼承,但是不會被這些繼承,他們不處于同一個鏈條上。 js中,F(xiàn)unction的本質(zhì)是什么?Object的本質(zhì)又是什么?js中有幾條原型鏈? showImg(https://segmentfault.c...
閱讀 2517·2023-04-25 17:37
閱讀 1196·2021-11-24 10:29
閱讀 3704·2021-09-09 11:57
閱讀 701·2021-08-10 09:41
閱讀 2252·2019-08-30 15:55
閱讀 2820·2019-08-30 15:54
閱讀 1950·2019-08-30 15:53
閱讀 904·2019-08-30 15:43