原型链 当调取一个对象的属性时,会先在本身查找,若无,就根据 __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;
推荐阅读
- web前端|面试必问JavaScript基础面试题(附答案详解)
- javaScript|2021年Javascript最常见的面试题以及答案
- 面试题|牛客网前端刷题(一)
- JavaScript高级语法|ES6——class类实现继承
- vue|Vue+Electron开发跨平台桌面应用(实战)
- JS中的while和for循环用法和区别
- javascript|js for循环 1-100的和 /1-100奇数和/1-100偶数和
- html5|:nth-child()选择器用法
- web前端|如何去调试前端JS代码(以Chrome谷歌浏览器为例)