关于闭包概念很多人觉得很抽象,你可以理解闭包是一种使函数能够都去其它函数的局部变量的语法机制。
举个例子:
function outFunc(){
var name = "前端君";
function inFunc(){
console.log(name);
}
return inFunc;
}
inFunc(); //控制台显示"前端君"
这这个例子我们可以看出,在函数 inFunc 中依然可以访问 otuFunc 的局部变量 name 。
闭包应用举例:模拟类的私有属性。看下面的例子。
function User(){
this.name = "前端君"; //公有属性
var age = 23; //私有属性
this.sayAge = function(){
console.log("my age is " + age);
}
}
var user = new User();
console.log(user.name);
//"前端君"
// 私有属性不可直接访问
console.log(user.age);
//"undefined"
//但可以通过sayAge访问
user.sayAge();
//"my age is 23"
利用闭包的性质,局部变量只有在 sayAge 方法中才可以访问,而 name 在外部也访问,从而实现了类的私有属性。
这就是闭包在实际开发的其中一个很常见应用。
热门文章
原创教程
原创教程:
附加习题:
趣味职场
职场焦虑:
感到迷茫:
培训出身:
培训费用:
搞笑黑话:
职业自由:
职场形象:
合作推广分割线