面试必考-继承

首先要知道:
new 一个对象的过程:
1.创建了一个对象
2.将this指向这个对象
3.执行构造函数
4.返回这个对象
当访问一个对象的一个属性时:在这个对象本身上找,找到就返回,找不到就去这个对象的__proto__属性指向的那个对象上找(也就是prototype对象)

function Person(){
    
}
Person.prototype.name="xingming";
Person.prototype.age=20;
Person.prototype.sayhello=function(){
    console.log(this.name)
}
var p=new Person();
p.sayhello();//xingming

//现在想让Student继承Person
//一、原型链继承
function Student(){}
Student.prototype=Person.prototype;//这样写不行!!!会修改Person的原型
Student.prototype=Object.create(Person.prototype)


在这里插入图片描述

//二、组合继承(构造函数加原型链继承)
function Person(name,age){
    this.name=name;
    this.age=age;
}
Person.prototype.sayhello=function(){
    console.log(this.name)
}
function Student(name,age,classid){
    Person.call(this,name,age);//构造函数继承
    this.class=classid;
}
Student.prototype=Object.create(Person.prototype);//原型链继承
Student.prototype.study=function(){
    console.log(this.name,this.age,this.classid)
}
var student=new Student('哪吒','2','3班')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值