首页 > 其他 > 详细

闭包小小结

时间:2017-02-22 11:26:24      阅读:171      评论:0      收藏:0      [点我收藏+]

闭包有很多的解释,有的是这么认为的:如果在函数func内部声明函数inner,然后在函数外部调用inner,这个过程即产生了一个闭包。还有些是这么认为的:闭包是一种使函数能够读取其它函数的局部变量的语法机制。  我比较喜欢第二种,就是这个函数它能够访问其他函数的局部变量。

闭包的用途:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中
作者: 妙笔
链接:http://www.imooc.com/article/8413
来源:慕课网
一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中
作者: 妙笔
链接:http://www.imooc.com/article/8413
来源:慕课网
function Current(start){
    count = start;
    return{
        on: function(){
            count++;
        },
        off: function(){
            return count;
        }
    }
}
var foo = Current(4);
foo.on();
foo.off();
console.log(foo.off());

这里,Counter 函数返回两个闭包,函数 on 和函数 off。 这两个函数都维持着 对外部作用域 Counter 的引用,因此总可以访问此作用域内定义的变量 count.

闭包应用举例,模拟类的私有属性,利用闭包的性质,局部变量只有在sayAge方法中才可以访问,而name在外部也访问,从而实现了类的私有属性。


function User(){
    this.name = "Vicfeel"; //共有属性
    var age = 23; //私有属性
    this.sayAge:function(){
       console.log("my age is " + age); 
    }
 }
 var user = new User();
 console.log(user.name); //"Vicfeel"
 console.log(user.age); //"undefined"
 user.sayAge(); //"my age is 23"

嗯,差不多我的记录就是这样子了。

 

 

闭包小小结

原文:http://www.cnblogs.com/wangxi01/p/6427785.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!