面试题(一):
面试题(二):
第一种:方法调用
第二种:函数调用,里面的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