JScript闭包 究竟用不用 本帖最后由 hetengfei_ 于 2011-11-28 01:34:26 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般情况下的确用不到,或者可通过用全局变量等方法解决问题。而对于封装API,会有用的。闭包其实是算法中的概念,也不是什么新的东西。js本来就是简单的,能解决问题就好了,不必深究。 大部分公司都不会专门找人写js 通通都是function function 全局变量漫天飞 因为对项目来说js完全就是辅助的 闭包这个东西研究研究有这个印象就行了 往后项目中遇到难题时能想到闭包时就用 没必要深究 #2楼fandui(默默不得鱼)提到一个,我看到比较可怕的问题:“全局变量漫天飞”这个可不是什么好的习贯啊,最起码,要把 一个问题 范筹 的变量 封在一个地方。哎,以前我是写得“全局变量漫天飞” 。可是 当情况越来越复杂之后,自已都不知自已做到了那里, 搞得:自已的代码,连自已都看不懂。大侠们,你们有什么好方法? 最好还是封装一下~·最起码得保证页面导入你的JS或者别人的JS,不会冲突。其次封装可以让代码看起来结构会舒服。调用方法什么的比较直观~· 例子http://topic.csdn.net/u/20111126/20/90bd0aa6-9606-498d-9fa2-6023b9512b22.html 最好还是封装一下可是,用 function 中的this.xxx 来封装。也是不太好,因,太多时, function 也会漫天飞啊!???!!! 我知道。使用setInterval调用带参数的函数,使用闭包会很方便 pp = setInterval(Showbyspeed(10, dv), 10);Showbyspeed = function (m, sdv) { return function () { //使用参数m,sdv } --------------------引用 10 楼 ganlu423 的回复--------------------我知道。使用setInterval调用带参数的函数,使用闭包会很方便 pp = setInterval(Showbyspeed(10, dv), 10);Showbyspeed = function (m, sdv) { return function () { //使用参数m,sdv }--------------------引用 10 楼 END --------------------如果我来写,很可能是: function Showbyspeed(){ this.ParameterM; this.ParameterSdv; this.DoSomeThing=function(ParameterM,ParameterSdv) { if((ParameterM&&ParameterSdv)) { //使用参数m,sdv } }}pp = setInterval(function(){ Showbyspeed.ParameterM=10; Showbyspeed.ParameterSdv=dv; Showbyspeed.DoSomeThing();}, 10); }哎,变成多长啊!!!! 多写几个这就行了(function(){var obj={};//这里爱怎么定义变量就怎么定义})(window);(function(){var obj={};//这里爱怎么定义变量就怎么定义})(window); 1.闭包不难,跟c语言要研究的指针相比,闭包的概念其实很简单,而且不只是js很多语言都有闭包。只是你没有去深入研究。2.存在即合理,有些地方你一定、必须会用到闭包。3.每个语言都有自己的特点,这不是缺陷。4.编程语言只是个工具。只是个工具... 有点不明;(function(){var obj={};//这里爱怎么定义变量就怎么定义})(window);中有个 window ,不知为什么要把 window传进去呢?如果不传 在里面 取不知window 吗?(function(){var obj={};//这里爱怎么定义变量就怎么定义})(); 如果不传的话 在里面 取不到window 吗? js的问题火狐和IE 关于setTimeout内存溢出的问题. 谷歌浏览器iframe自适应高度无效 急需帮忙~关于js Jquery,checkbox问题。请教 頁面的Loaded狀態 如何用js来判断注册名字? 有关JQuery插入层层,请大佬指点. JQuery 鼠标经过变色 如何实现打印网页中的一张table 漂浮广告--Document Type Extjs gridPanel导出Excel 如何实现?(WebForm)
闭包其实是算法中的概念,也不是什么新的东西。
js本来就是简单的,能解决问题就好了,不必深究。
提到一个,我看到比较可怕的问题:“全局变量漫天飞”
这个可不是什么好的习贯啊,
最起码,要把 一个问题 范筹 的变量 封在一个地方。哎,以前我是写得“全局变量漫天飞” 。
可是 当情况越来越复杂之后,自已都不知自已做到了那里, 搞得:自已的代码,连自已都看不懂。大侠们,你们有什么好方法?
最好还是封装一下~·最起码得保证页面导入你的JS或者别人的JS,不会冲突。其次封装可以让代码看起来结构会舒服。调用方法什么的比较直观~·
http://topic.csdn.net/u/20111126/20/90bd0aa6-9606-498d-9fa2-6023b9512b22.html
因,太多时, function 也会漫天飞啊!
???!!!
Showbyspeed = function (m, sdv) {
return function () {
//使用参数m,sdv
}
我知道。使用setInterval调用带参数的函数,使用闭包会很方便
pp = setInterval(Showbyspeed(10, dv), 10);
Showbyspeed = function (m, sdv) {
return function () {
//使用参数m,sdv
}
--------------------引用 10 楼 END --------------------如果我来写,很可能是:
function Showbyspeed()
{
this.ParameterM;
this.ParameterSdv;
this.DoSomeThing=function(ParameterM,ParameterSdv)
{
if((ParameterM&&ParameterSdv))
{
//使用参数m,sdv
}
}
}
pp = setInterval(function(){
Showbyspeed.ParameterM=10;
Showbyspeed.ParameterSdv=dv;
Showbyspeed.DoSomeThing();}, 10);
}哎,变成多长啊!!!!
(function(){
var obj={};
//这里爱怎么定义变量就怎么定义
})(window);
(function(){
var obj={};
//这里爱怎么定义变量就怎么定义
})(window);
2.存在即合理,有些地方你一定、必须会用到闭包。
3.每个语言都有自己的特点,这不是缺陷。
4.编程语言只是个工具。只是个工具...
有点不明;
(function(){
var obj={};
//这里爱怎么定义变量就怎么定义
})(window);中有个 window ,不知为什么要把 window传进去呢?
如果不传 在里面 取不知window 吗?(function(){
var obj={};
//这里爱怎么定义变量就怎么定义
})();