1. 程式人生 > 其它 >javaScript14-面向物件原型繼承和class繼承

javaScript14-面向物件原型繼承和class繼承

什麼是面向物件

  • 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,然後又指回來。