使用class实现继承 原型 原型链

目录

 原型prototype

原型链  

原型继承

原型链_proto_

检测属性或方法是不是对象自己的


使用class实现继承

类的演示

// 使用class实现继承
// 定义一个Student类,在Student里面定义一个构造函数,接受name和score
class Student {
    constructor(name,score){
        // 这里的this是   通过student这个类   创建出来的实例
        this.name=name;
        this.score=score;
    }
}

const student = new Student('张三','90');
console.log("student",student)

定义方法

定义另一个类

提取两个类的共同属性,使用继承的概念 

extends关键字和super关键字实现

new出来的Teacher是构造函数

 teacher是实例,通过new关键字 继承Teacher的属性

原型链查找规则:先从当前的实例属性去查找,如果找到就返回,没找到就顺着原型链一层一层往上找,直到找到null为止,如果null都没有找到就会报错

 原型prototype

prototype:函数的一个属性,就是一个对象(原型是函数特有的属性,对象和数组没有原型)

_proto_ ([[prototype]]):对象Object的一个属性,也是一个对象(对象数组都有原型链)

被构造的实例  的 原型链_proto_  指向的是 构造他的函数  的 原型prototype

对象_proto_保存着该对象的构造函数prototype

原型链  

就是  一个对象(teacher)为基准   以 _proto_为连接的链条  直到Object.prototype为止  这个链  叫做原型链

实际上是对象原型 _proto_为节点 连起来的一个链

 

原型继承

沿着_proto_去找链上任意一个原型属性,里面只要有想要的值,就去拿

如果找不到直接的属性或者方法,会以_proto_为节点,在构造函数prototype中找

下面的不重要

 

               显式原型                                              隐式原型

原型链_proto_

展开对象

 

 当执行teacher的drink方法时,在Teacher的prototype上找不到drink。

当访问一个对象的属性或者方法的时候,首先会从自身找,找不到,往他的原型上找,原型上找不到,往原型的原型上找,这种链式结构称为原型链

检测属性或方法是不是对象自己的

找自身的私有属性

X.hasOwnProperty('属性')

 实际上完整的原型链

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值