JavaScript 面向对象学习笔记 -- 闭包
闭包
全局变量在函数内部可以访问。
var n = 999; function f1() { console.log(n); } f1(); // 999
函数内部定义的变量,外部无法访问。
function f1() { var n = 999; } f1(); console.log(n); // 报错
外部访问函数内定义的变量。在函数里再定义一个函数。
function f1() { var i = 0; function f2() { console.log(i) } return f2; } f1()(); // 0
特点:f2在f1里面定义的,f1需要返回f2
用途:1. 读取函数内部的变量; 2. 让变量保留在内存中。
function f1() { var n = 1; nAdd = function() { n = n + 1; } function f2() { console.log(n); } return f2; } f1()(); // 1 nAdd(); f1()(); // 2
优缺点:
优点:
- 有利于封装
- 可以访问局部变量
缺点:
- 内存占用严重,引起内存泄漏
文小白滴笔记~~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步