经典面试|Javascript中经典面试题 原型链 闭包 this指向问题 类的继承

原型链 当调取一个对象的属性时,会先在本身查找,若无,就根据 __proto__找到构造原型,若无,继续往上找。最后会到达顶层Object prototype,它的__proto__指向null。
由__proto__ 串起的路径就是原型链
原型 是一个对象,js规定,每一个 构造函数都有一个prototype属性,指向另一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。
闭包 闭包是什么:内层函数访问外层函数的变量
&&一个作用域访问另外一个函数内部的局部变量
闭包的作用: 延申变量的使用范围
闭包的弊端:造成内存泄漏(变量没有被销毁)
this指向问题 【经典面试|Javascript中经典面试题 原型链 闭包 this指向问题 类的继承】两个原则没变

  • 构造函数中的this指向实例对象
  • 其他函数中的this指向调用者
    • 定时器中的函数的调用者是window
    • 立即执行函数的调用者是window
类的继承(使用原型对象)
  • 子构造函数使用call方法调用父级构造函数继承父类的属性
// 2 .子构造函数 function Son(uname, age, score) { // this 指向子构造函数的对象实例 Father.call(this, uname, age); }

  • 通过子构造函数的原型对象继承父构造函数的方法
Son.prototype = new Father(); // 如果利用对象的形式修改了原型对象,别忘了利用constructor 指回原来的构造函数 Son.prototype.constructor = Son;

    推荐阅读