1、闭包
闭包 | 含义 |
闭包函数 | 声明在一个函数中的函数,叫做闭包函数 |
闭包 | 内部函数可以访问其所在的外部函数中声明的参数和变量 |
闭包的特性 | 内部函数未被执行完,外部函数即使执行完成,外部函数中的变量也不会被销毁 |
// 1、闭包函数:声明在一个函数中的函数,叫做闭包函数 // 闭包:内部函数可以访问其所在的外部函数中声明的参数和变量 // 闭包的特性:内部函数未被执行完,外部函数即使执行完成,外部函数中的变量也不会被销毁 function fun() { let m = 20; let n = 10; function fun1() { return m + n; } return fun1(); } var result = fun(); console.log(result);
2、作用域链
- 在当前作用链来找变量,没有时往上找,直到找到全局作用域,再没有就报错
// 2、作用域链:在当前作用链来找变量,没有时往上找,直到找到全局作用域,再没有就报错 var str = 'Hello'; function fun4() { let str = 'world'; console.log(str); function fun5() { console.log(str); } fun5(); // 输出结果:world } fun4(); // 输出结果:world console.log(str); // 输出结果:Hello