经罗老湿( 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仍然可以访问
时间: 2024-10-29 12:50:43