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,然后又指回来。
posted @ 2021-11-11 17:07  卡卡发  阅读(43)  评论(0)    收藏  举报