js 闭包函数实现和原理(面试)

it2025-01-13  4

闭包: 一个嵌套函数,子函数使用了父函数的变量,通过return将子函数暴露在全局作用域,子函数就形成闭包。 通过闭包,父函数的局部变量没有被销毁,可通过闭包去调用 ,但同时,这个局部变量也不会被全局变量污染。

优点: 避免全局变量的污染,同时,局部变量没有被销毁,驻留在内存中,还可以被访问 缺点: 使用不当,会造成内存泄露

闭包函数原理:

内部函数在包含它们的外部函数之外被调用时,就会形成闭包。

闭包的作用:

实现公有变量

代码1:

var add1 = (function() { let count = 0; return function() { console.log("count", count); return count += 1; } })(); console.log(add1()); console.log(add1()); console.log(add1());

结果: 代码2:

function a() { var count = 0; function b() { return count += 1; } return b; }; var add = a(); console.log(add()); console.log(add()); console.log(add());
最新回复(0)