javascript - 关于闭包的问题
本文介绍了javascript - 关于闭包的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
$func = function( $param ) {
echo $param;
};
$func( 'some string' );
这样做有什么意义呢,和给function命个名有何不同
function test($param){
echo $param;
}
test('some')
解决方案
闭包简单说你可以把他理解成,在javascript实现公有,私有,和特权变量。再直接点就是 private变量的get,set操作,闭包创建的内部变量,使这些变量不能被外部随意修改,同时又可以通过指定的函数接口来操作更改。
例子:模拟私有变量
function Counter(start) {
var count = start;
return {
increment: function() {
count++;
},
get: function() {
return count;
}
}
}
var foo = Counter(4);
foo.increment();
foo.get(); // 5
这里,Counter
函数返回两个闭包,函数 increment
和函数 get
。 这两个函数都维持着 对外部作用域 Counter 的引用,因此总可以访问此作用域内定义的变量 count
.
这篇关于javascript - 关于闭包的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文