有关闭包的相关知识整理

闭包:当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。这句话

解起来可能有些困难,简单的说来,闭包就是能够读取其他函数内部变量的函数,本质上,闭包就是将函数内部和

函数外部连接起来的一座桥梁。


在我们平时码出的JS代码中,可以说闭包的应用多不胜数。


例如:


function foo(){

var f1=10;

function bar(){

console.log(f1);

}

return bar;

}


var baz=foo();

baz();


在这段代码中,foo函数外部变量想要读取内部变量,根据作用域原理是没有办法实现的,但是,闭包可以读取

其函数内部的变量,故而,最后return bar,即可实现显示f1变量数值。


闭包在函数中的应用很多,最常见的有定时器、Ajax请求、跨窗口通信或者其他的异步任务中。


闭包的用途主要有两个:1、可以读去函数内部的变量

                                        2、让这些变量的值始终保存在内存中


使用闭包需要注意以下两点:1、由于闭包会使函数的变量都保存在内存中,造成内存消耗大,所以不能滥用闭包。

                                               2、闭包会在父函数外部改变父函数内部变量的值,所以,如果把父函数当作对象使用,把闭包当作它的公用方法,把内部变量当作它的私有属性,注意不要随意改变父函数内部的值。 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang八股文是指在面试或考试中常被问到的一些基础知识和常见问题。下面是一份简单的整理: 1. Golang的特点:静态类型、垃圾回收、并发模型、内存安全、编译型语言等。 2. Golang中的基本数据类型:整型、浮点型、布尔型、字符串、数组、切片、映射、结构体等。 3. Golang中的控制流程:条件语句(if-else)、循环语句(for、range)、选择语句(switch)、跳转语句(break、continue)等。 4. Golang中的函数函数定义、函数调用、参数传递(传递和引用传递)、多返回、匿名函数闭包等。 5. Golang中的并发编程:goroutine的创建与调度、通道(channel)的使用、并发安全、锁机制(互斥锁、读写锁)等。 6. Golang中的错误处理:错误类型(error)、错误处理机制(defer、panic、recover)、错误码设计等。 7. Golang中的面向接口编程:接口的定义与实现、接口的多态性、空接口(interface{})、类型断言等。 8. Golang中的包管理:go mod的使用、依赖管理、版本管理等。 9. Golang中的测试与性能优化:单元测试(testing包)、性能剖析(pprof包)、内存分析、代码优化等。 10. Golang中的常用标准库:fmt、os、io、net、http、json等。 以上是一些常见的Golang八股文内容,希望对你有所帮助。当然,实际应用中还有很多其他方面的知识和技巧需要掌握。如果你有具体的问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值