手记

【九月打卡】第10天 前端工程师2022版 就业必备基础技术面试分析

课程名称:JS基础—原型和原型链

课程章节:Javascript面试课

课程讲师: 双越

课程内容:

原型和原型链

问题:

1.如何判断一个变量是不是数组?

a instanceof Array

2.class的原型本质,怎么理解?

原型和原型链的图示

属性和方法的执行规则

知识点:

  1. 如何用class实现继承?

  2. // 父类
    class People{
        constructor(name){
            this.name = name
        }
        eat(){
            console.log(`${this.name} eat something`);
        }
    }
    
    //子类
    class Student extends People{
        constructor(name,number){
            super(name)
            this.number = number
        }
        sayHi(){
            console.log(`${this.name}在和老师打招呼`);
        }
    }
    
    class Teacher extends People{
        constructor(name,major){
            super(name)
            this.major = major
        }
        teach(){
            console.log(`${this.name} 教授 数学`);
        }
    }
    
    // 通过类 new 一个对象/实例
    const lilei = new Student('李雷',200)
    console.log(lilei.name);    //李雷
    console.log(lilei.number);  //200
    lilei.sayHi();              //李雷在和老师打招呼
    lilei.eat();                //李雷 eat something
    
    const wanglaoshi = new Teacher('王老师' , '数学')
    console.log(wanglaoshi.name);   //王老师
    console.log(wanglaoshi.major);  //数学
    wanglaoshi.teach()              //王老师 教授 数学
    wanglaoshi.eat()                //王老师 eat something

2.如何理解 JS 原型 (隐式原型和显示原型)

//class 实际上是函数,可见是语法糖
typeof People   //'function'
typeof Student  //'function'

//隐式原型和显示原型
console.log( lilei.__proto__ )
console.log( Student.prototype ) 
console.log( xialuo.__proto__ === Student.prototype) //true

原型关系

◆每个class都有显示原型prototype

◆每个实例都有隐式原型_proto_

◆实例的_proto_指向对应class的prototype

基于原型的执行规侧

◆获取属性xialuo.name或执行方法xialuo.sayhi() 时

◆先在自身属性和方法寻找

◆如果找不到则自动去_proto_中查找


还剩一个手写JQuery,看不懂


0人推荐
随时随地看视频
慕课网APP