很多地方都可以看到js代码用
(function($){
//代码
var demo = function(){
};
var demo2 = function(){
};
})(jQuery)
这样包起来,这是js闭包吧。把js代码写到这个里面有什么好处呢?
<script type="text/javascript">
(function($){
var hehe = funcion(){
alert('hehe');
};
})(jQuery);
</script>
怪我咯2017-04-10 16:04:15
这是一个立即执行匿名函数,同时也是一个闭包。
闭包的作用主要有两个:减少全局变量,保护变量
举两个例子请题主揣摩:
// 第一例:
var a = function(){
alert('global');
};
(function(){
var a = function(){
alert('closure');
}
a();
})();
a();
// 第二例:
var setter = function(){
var privateVar;
return {
set: function(v){
privateVar = v;
},
get: function(){
return privateVar;
}
};
}();
setter.set('hello world');
setter.get();
PHP中文网2017-04-10 16:04:15
首先,你所说的问题不是闭包,JavaScript是一门基于函数作用域的语言,而不像其他语言一样存在块级作用域,这样意味着函数外部不能访问函数内部的产量,更好地实现数据的封装!
ringa_lee2017-04-10 16:04:15
假如你有多个版本的jquery。可以分别传如不通的jquery,多版本很不错。
例如:(function($){cosnole.log($)})(jquery1) ;(function($){cosnole.log($)})(jquery2);
这样都可以使用$符合了