目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

web前端全系列 教程

1839个小节阅读:2243.3k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1.9k)
赞(0)

函数_闭包概念

image-20211104113739171

闭包(closure)是 Javascript 语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现

理解闭包,首先必须理解变量作用域

变量的作用域

要理解闭包,首先必须理解Javascript特殊的变量作用域

变量的作用域无非就是两种

  1. 全局变量
  2. 局部变量

另一方面,在函数外部自然无法读取函数内的局部变量

温馨提示

这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量

如何从外部读取局部变量

出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现

那就是在函数的内部,再定义一个函数

既然getN可以读取getNum中的局部变量,那么只要把getN作为返回值,我们不就可以在getNum外部读取它的内部变量了吗

闭包的概念

上述代码中的getN函数就是闭包

各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂。我们参考老前辈的理解是:闭包就是能够读取其他函数内部变量的函数

由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁

实时效果反馈

1. 下列关于作用域代码,输出结果正确的是:

A itbaizhan itbaizhan

B 报错

C itbaizhan

D itbaizhan 报错

答案

1=>D

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2