最近要开始求职,所以开始复习一些基础知识,发现闭包这个东西,有一些容易让人困惑,主要是它的原理是什么?他又是如何应用的?(实际应用功能),所以在此做个记录,方便以后查阅。
首先闭包,我的理解就是:一个外部的变量(方法)能够访问一个对象(方法)内部的属性。
这是个闭包的例子:
let outer ="out";
let start;
function outClass() {
let inner ="in";
function innerClass() {
console.log(outer);
console.log(inner);
}
start =innerClass
}
outClass();
start();
//todo 打印结果: out
//todo in
从上面我们可以看出,外部的start通过在outClass里面的赋值,可以将内部方法“提到外部”调用,获得outClass里面记录的inner值。
综合上述,闭包最大的作用就是将代码整合,把一些不需要修改的字段藏在闭包里面,这样提炼函数是代码重构中的一种常见技巧,可以帮助把一些不需要暴露在全局的变量封装成“私有变量”,同时还能延长局部变量的生命周期。
网友评论