JavaScript 函数嵌套和闭包示例:test() 函数详解
JavaScript 函数嵌套和闭包示例:test() 函数详解
本示例演示了 JavaScript 函数嵌套和闭包的概念,通过 test() 函数的定义和调用,展示了内部函数 add() 如何访问外部函数的变量 n 并进行操作。
示例代码:
function test() {
var n = 4399;
function add() {
n++;
console.log(n);
}
return { n: n, add: add };
}
var result = test();
var result2 = test();
console.log(result.n);
result2.add();
运行结果:
4399 4400
代码分析:
-
函数嵌套: 函数
add()嵌套在函数test()内,这意味着add()函数只能在test()函数内部被访问。 -
闭包: 当
test()函数被调用时,它会创建一个新的闭包,并将变量n和函数add()封闭在该闭包中。 -
变量访问: 虽然
add()函数在test()函数内部定义,但它可以访问test()函数的局部变量n,这是闭包的关键特性之一。 -
函数返回:
test()函数返回一个对象,该对象包含两个属性:n: 存储着test()函数内部的变量n的值。add: 指向add()函数的引用。
-
多次调用: 当
test()函数被多次调用时,每次都会创建一个新的闭包,包含一个新的n变量。
总结:
通过这个示例,我们可以理解 JavaScript 中函数嵌套和闭包的概念。闭包允许内部函数访问外部函数的变量,即使外部函数已经执行完毕。这使得我们可以在函数内部创建私有数据,并通过闭包来控制对这些数据的访问。
原文地址: https://www.cveoy.top/t/topic/o9oK 著作权归作者所有。请勿转载和采集!