电子商务网站开发综合实训报告,win7 iis搭建网站教程,建设网站要多久,网站后期维护收费闭包
闭包是什么
内部函数(嵌套函数)能够访问其外部函数(父函数)的变量#xff0c;即使外部函数执行完毕后#xff0c;这些变量仍会保留在内存中#xff0c;因为内部函数保持着对它们的引用#xff0c;从而防止了垃圾回收机制回收这些变量。闭包是函数与其词法环境(包括外…闭包
闭包是什么
内部函数(嵌套函数)能够访问其外部函数(父函数)的变量即使外部函数执行完毕后这些变量仍会保留在内存中因为内部函数保持着对它们的引用从而防止了垃圾回收机制回收这些变量。闭包是函数与其词法环境(包括外部函数的变量)的组合这种组合使得函数能够记住并访问其被定义时的环境。在JavaScript中内层函数(嵌套函数)具有访问其外层函数作用域的能力这种特性是通过闭包实现的它允许内部函数访问和操作在外部函数中定义的变量。
闭包的几种用法
// 函数作为返回值的场景
function mail(){let content cuireturn function (){console.log(content)}
}const envelop mail()
envelop() // 拿到内部的值// 函数作为参数的时候
let content
function envelop(fn){content 1;fn();
}function mail(){console.log(content)
}
envelop(mail)// 函数的嵌套
let counter 0;function outerFn(){function innerFn(){counter;console.log(counter)}return innerFn;
}
outerFn()();利用闭包实现私有变量
function createStack(){return {items:[]push(item){this.item.push(item)}
}const stack {item:[],push:function(){}
}function createStack(){const items [];return {push(item){items.push(item)}}
}