javaScript14-面向物件原型繼承和class繼承
阿新 • • 發佈:2021-11-11
什麼是面向物件
-
javaScript,java,c#,……
類:模板
物件:具體的例項
-
但是javaScript有點區別!
原型繼承
<script> //原型物件 var student={ name: 'kaka', age: 3, run: function (){ console.log(this.name+"在run") } }; var xiaoming={ name: '小明' }; //小明的原型是student,相當於繼承 xiaoming.__proto__=student; </script>
class繼承
class關鍵字是在ES6引入的
<script> //定義一個學生的類 class student{ constructor(name) { this.name=name; } hello(){ alert('hello'); } } class pupil extends student{ constructor(name,grade) { super(name); this.grade=grade; } myGrade(){ alert('我是一名小學生'); } } var xiaoming=new student("小明"); var kaka=new student("卡卡"); var xiaohong=new pupil('小紅',5); </script>
class繼承其本質還是原型繼承,只不過寫法變了,更加規範了
原型鏈
- Java叫繼承,JavaScript叫原型鏈
- 無論怎麼繼承,最終始終指向object,然後又指回來。