何为闭包:闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
// 闭包通俗来说就是以内部函数访问外部函数 // 外部函数 function fn1() { let hq = '你就是我的朱丽叶'; // 内部函数 function fn2() { console.log(hq); } //将内部函数return出去,使外部函数获取 return fn2; } let fn3 = fn1(); console.log(fn3); fn3();
this指向:
通常情况下,一般this指向window
function Q() {
console.log(this);//指向window对象
}
Q();
匿名函数
let fn = function () {
console.log('this');//this
}
fn();
在全局作用域中,this都是指向window的,如图所示,这个匿名函数是通过变量fn来间接获取的