// 闭包就是函数套函数
// 学习闭包就必须学习作用域这个概念
/**
* 作用域:变量可以使用的作用范围
*
* 全局的 局部的 块级的
*
* */
// 全局的
// var a = 1
// function fn1(){
// console.log(a);
// }
// // console.log(a);
// fn1()
// 局部的
// function fn1(){
// var a = 10
// console.log(a)
// }
// fn1()
// console.log(a)
// 块级的
// {
// let a = 100
// console.log(a)
// }
// console.log(a);
// for(var i=0;i<6;i++){
// // console.log(i)
// /**
// * i == 0 --------> 延时器
// * i == 1 --------> 延时器
// * i== 2 --------> 延时器
// * i== 3 --------> 延时器
// * i == 4 --------> 延时器
// * i == 5 --------> 延时器
// * i==6
// *
// * 该执行异步的了: 6个延时器
// *
// * */
// setTimeout(()=>{
// console.log(i)
// })
// }
// for(let i=0;i<6;i++){
// // console.log(i)
// /**
// * i == 0 --------> 延时器 i = 0
// * i == 1 --------> 延时器
// * i== 2 --------> 延时器
// * i== 3 --------> 延时器
// * i == 4 --------> 延时器
// * i == 5 --------> 延时器
// * i==6
// *
// * 该执行异步的了: 6个延时器
// *
// * */
// setTimeout(()=>{
// console.log(i)
// })
// }
// 作用域链 -- 就近原则
// var name = '马瑞森呢'
// function fn1(){
// // var name = '边玉良'
// function fn2(){
// // var name = '家制造'
// console.log(name1);
// }
// fn2()
// }
// fn1()
// function fn1(){
// var aaa = 'hello'
// }
// console.log(aaa);
// 闭包 (Closure)
// 函数嵌套函数,外层函数可以访问内部的变量
/**
* scope -- 作用域
* Closure -- 闭包
*
* ***/
// var aaa = 1
// function fn1(){
// var aaa = 2
// return function(){
// console.log(aaa);
// }
// }
// // fn1()
// fn1()()
// 函数
// function addNum(a){
// return function(b){
// console.log( a + b )
// }
// }
// let add = addNum(5)
/**
* add = function(b){console.log(5 + b)}
*
*
* *****/
// console.log(add);
// let add1 = addNum(10)
// add(15) //
// add1(15) //
关于闭包的理解
于 2022-04-02 16:14:26 首次发布