码迷,mamicode.com
首页 > 其他好文 > 详细

闭包之我的理解

时间:2015-02-26 13:11:39      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

经罗老湿( http://heeroluo.net/ ) 指点~~ 并且看了《Effective JavaScript Item 11 掌握闭包》这篇文章后,对闭包有了更加清晰的认识了。为了避免学而不思则罔,在此写下本人对闭包的了解,权当记录。

1:函数能够访问到其外部的变量。

function cupShow(color, weight) {
    console.log(‘this cup:‘+ ‘ ‘ + color + ‘ ‘ + weight);
}

function cupMake(sourceFn){
    var color = ‘red‘;
    var weight = ‘50g‘;
    return sourceFn(color, weight);
}

var closure = cupMake(cupShow); // this cup: red 50g 

  以上代码把cupShow函数作为参数传给cupMake。在cupMake内部访问了color变量和weight变量。

 

 

2: 闭包在创建它们的函数返回之后,还能够被访问到。

function cupShow(color, weight) {
    console.log(‘this cup:‘+ ‘ ‘ + color + ‘ ‘ + weight);
}

function cupMake(sourceFn){
    return function(){
        sourceFn.apply(this, arguments);
    };
}

var closure = cupMake(cupShow); 
    closure(‘blue‘,‘30g‘); // this cup: blue 30g 

  以上代码中cupShow 函数被cupMake返回后,在匿名函数内部,cupShow仍然可以访问

 

  

  

  

 

闭包之我的理解

标签:

原文地址:http://www.cnblogs.com/Travel/p/4253643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!