web前端全系列 教程
1839个小节阅读:2244k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
function getNum(){
var n = 100;
function getN(){
console.log(n);
}
return getN;
}
var result = getNum();
result(); // 100
观察多次调用函数,n
的变化
xxxxxxxxxx
function getNum(){
var n = 100;
n++;
console.log(n);
}
getNum(); // 101
getNum(); // 101
将n
放入到函数中进行增加,然后观察n
的变化
xxxxxxxxxx
function getNum() {
var n = 100;
nAdd = function () {
n += 1
}
console.log(n);
}
getNum(); // 100
nAdd();
getNum() // 100
增加闭包,在观察n
的变化
xxxxxxxxxx
function getNum() {
var n = 100;
nAdd = function () {
n += 1
}
function getN() {
console.log(n);
}
return getN;
}
var result = getNum();
result(); // 100
nAdd();
result(); // 101
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题
实时效果反馈
1. 下列关于闭包,输出结果正确的是:
xxxxxxxxxx
function getNum() {
var n = 100;
function getN() {
n += 1;
console.log(n);
}
return getN;
}
var result = getNum();
result();
result();
A 100 100
B 100 101
C 101 102
D 101 101
答案
1=>C