闭包

闭包
1,函数的执行
封装定义
(1),创建一个内存空间,准备存储函数程序内容,操作系统,定义内存地址
(2),将函数程序,以字符串的形式,存储在 内存空间 中
(3),内存空间的 内存地址,赋值给变量或者函数名称存储

执行调用
(1),通过变量或者函数名称中存储的内存地址,找到存储空间
(2),调用其中存储的函数程序,赋值实参
(3),预解析/预解释
(4),调用执行函数程序
会在 函数的存储空间中 再独立创建一个 执行空间
专门 存储函数执行时,生成的变量以及程序内容
当函数执行完毕,执行空间就会被销毁,其中存储的内容,也会一起被销毁

2,闭包的基本概念
闭包是 JavaScript 函数的高级应用
作用是 可以直接调用函数中的定义的变量
根本目的:1,为了防止全局变量污染,将变量定义为局部作用域变量
2,为了可以调用存储在函数内部的局部作用域变量,使用闭包技术

3,生成一个不被销毁的存储空间
定义一个函数,返回的返回值,是一个引用数据类型
并且在函数外部有变量存储返回值

4,闭包的基本条件
有一个函数A,返回值是函数B
在函数B中调用使用函数A中的变量
在函数A外部,有变量存储函数A的return值,也就是函数B

function fun2(){
const obj = {
name:‘张三’,
age:18,
}
// return 返回的实际是,obj变量中存储的对象的内存地址
return obj;
}
// 变量 o 中 存储的 是 obj对象的内存地址
// 如果执行空间被销毁, obj 被销毁,o中存储的内存地址,就失去意义了
// 如果 函数的返回值 return 的是一个 引用数据类型的内存地址
// 并且 在函数之外,有其他的变量存储这个内存地址
// 函数的执行空间,就不会被销毁,就会一直存在
const o = fun2();

// 不会销毁的执行空间的存在条件
// 1,函数的返回值是一个引用数据类型
// 2,在函数外,有另一个变量,在存储返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值