原型和原型链

复习

声明类、类的实例化、继承

 //声明类,关键字为class
    class Person{
        constructor(name,age){
          //  传进来的变量绑定在类的属性上
          this.name = name
          this.age = age
        }
        sayhello(){
            console.log(`${this.name}`);
        }
    }
    // 实例化
    let zhangsan = new Person ('zhangsan',18)
    console.log(zhangsan.name); //调用类的属性
    console.log(zhangsan.age);
    zhangsan.sayhello()
  //控制台
    zhangsan 
    18
    zhangsan 
继承
          class Person{
        constructor(name,age){
          //  传进来的变量绑定在类的属性上
          this.name = name
          this.age = age
        }
        sayhello(){
            console.log(`${this.name}`);
        }
    }
    //有了父类的方法和属性了 
    class Student extends Person{
      constructor(name,age,sex){
        super(name,age); //把父类的contructor执行一遍
        this.sex =sex
      }
      learn(){
        console.log(`我是吕佳美,性别:${this.sex}`);
      }
    }
        // 实例化

    // 实例化
    const lvjiamei = new Student ('zhangsan',18,'女')
    console.log(lvjiamei.name); //调用类的属性
    console.log(lvjiamei.age);
    console.log(lvjiamei instanceof Student);
    console.log(lvjiamei instanceof Person);
    console.log(lvjiamei instanceof Object); //判断是否在一个原型链上
    console.log(lvjiamei.__proto__);
    console.log(Student.prototype);
    console.log(lvjiamei.__pro__ ==Student.prototype)  //true 说明在一个链上

instanceof的作用(判断继承关系,同一条原型链返回true)

每一个class都有prototype,每个实例都有__proto__,它两指向class的prototype

prototype里面存储对象的方法

原型的执行规则:

现从自身上的属性h和方法中查找

如果找不到,去_proto_上查找

 

原型链:多个原型连接起来

原型链

获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有__proto__属性值为null。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值