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