JS面试题(进阶)——原型链、this指向、闭包

JavaScript022

JS面试题(进阶)——原型链、this指向、闭包,第1张

知识点:

面试题(一):

面试题(二):

第一种:方法调用

第二种:函数调用,里面的this指向的是window

第三种:构造函数调用:this指向调用它的对象

第四种:上下文调用模式,this指向谁?指向的是传入的对象

let var const 函数作用域 {}

1、在函数里面创建一个对象obj

2、将函数里面的this指向创建的那个对象obj

3、返回这个obj对象

闭包的概念:

闭包的使用场景:

闭包的问题:让变量得不到释放,增加内存使用率

给DOM 添加点击事件:

区别:onclick 会覆盖相同的事件,addEventListener会逐一的触发

DOM 事件三要素: 事件源, 事件类型, 事件处理程序

事件流程: 冒泡,捕获

ES5的继承

1、构造函数实现继承

2、借助原型是实现继承

3、组合方式实现继承

ES6的继承

深入学习可参考: https://juejin.im/post/5daeefc8e51d4524f007fb15?utm_source=gold_browser_extension#heading-22

javascript是动态(或者动态类型)语言,this关键字在执行的时候才能确定是谁。所以this永远指向调用者,即对‘调用对象‘者的引用。第一部分通过代码:object.getNameFunc()调用返回一个函数。这是个返回的函数,它不在是object的属性或者方法,此时调用者是window。因此输出是 The Window

第二部分,当执行函数object.getNameFunc()后返回的是:

function()

{

return that.name

}

此时的that=this。而this指向object,所以that指向object。无论你执行多少次,他都是对object的引用,所以输出My Object