今天爱分享给大家带来js 闭包构成 应用场景和实现代码 优点和缺点【面试题详解】,希望能够帮助到大家。
闭包是由什么构成
闭包=函数+词法作用域
词法作用域:即以变量声明定义的位置为参照,如果当前位置没有定义,就会访问父级定义的位置
广义上闭包: var a=1000; function fn1() { alert(a) } fn1()
平时工作中用到的闭包狭义上闭包:
1.函数内嵌套函数
2.子函数引用了父函数的相关变量
特点:长期驻留内存
闭包应用场景和实现代码
//求和 function makeAdd(x) { return function(y) { return x+y } } //设置字号 function setFontSize(size) { return function() { document.body.style.fontSize=size+"px" } } //循环表单 function makeHelp(help) { return function() { console.log(help) document.querySelector('.help').innerHTML=help } } function init() { var userInfo=[ {id:'username',helpText:'请输入用户名'}, {id:'email',helpText:'请输入邮箱'}, {id:'address',helpText:'请输入地址'}, ] //动态绑定onfocus事件 for(var i=0;i闭包优点和缺点
1.长期驻留内存,可以缓存数据
2.可以隔离作用域,避免全局污染