草庐IT

javascript - 闭包/作用域 JavaScript/jQuery

我正在尝试将一些现有的顶级函数分组到闭包(以避免污染全局命名空间)但我不太开始工作。首先,所有的JS在我的匿名函数之外工作,但是一旦我把它在匿名函数中我得到一个错误“crossfadeisnot定义”。有没有人看到任何完全明显的我是不见了?我不太明白为什么setInterval/crossfade在外面工作匿名函数但不在内部。start()里面的任何东西都应该能够在start()之外看到变量/函数,它应该都是在顶级匿名函数创建的闭包中protected?我没有尝试访问任何在crossfade()中,我只是试图执行它。(function($){//varsupherethatintern

javascript - 将参数传递到 setTimeout 的闭包中

我遇到了一个问题,我的应用程序位于iframe中,并且它是从外部域调用的。当iframe正确加载时,IE9不会触发加载事件,所以我认为我无法使用setTimeout来轮询页面。无论如何,我想看看我的setTimeout完成通常需要多长时间,所以我希望能够记录setTimeout从我的回调中触发的延迟,但我不确定如何将该上下文传递给它所以我可以记录它。App.readyIE9=function(){vartimings=[1,250,500,750,1000,1500,2000,3000];for(vari=0;i我在IE9的控制台中不断收到LOG:undefined。完成此任务的正确方

javascript - 在 Javascript 中使用闭包的好例子

嗯,我最近了解了Javascript中的闭包。虽然我发现它的概念真的很棒,但我自己还没有找到适合他们的应用程序。在我找到的所有博客文章和所有教程中,我都很好地解释了它们是什么以及如何使用它们。我在任何地方都找不到的例子让我觉得:“哇!你可以用闭包来做这个?太棒了!!!”。我找到的所有例子都像这个一样纯粹是学术性的。functionsay667(){//Localvariablethatendsupwithinclosurevarnum=666;varsayAlert=function(){alert(num);}num++;returnsayAlert;}varsayNumber=sa

javascript - 如何在 Aptana 中使用闭包类型注释?

如果我在AptanaStudio3中输入以下JavaScript代码,我预计会出现一些错误,但它什么也没显示。/***@type{string}*/varabc=23;abc.doesNotExists();如何启用对闭包类型注释的支持? 最佳答案 目前Aptana只支持注解,不支持实际的类型检查。为了进行类型检查,您必须使用google闭包编译器编译该代码。如果将编译器设置为完全优化模式,它会发出abc是字符串的警告(正如您将其放在注释注释中一样),但您设置了一个数字值。为了能够从闭包编译器的命令行获取它并将其集成到aptana中

javascript - Nodejs 闭包变量未在模块中更新

我需要一些帮助来理解NodeJ。我显然缺少一些基本的东西。我有一个类似于下面的模块,使用基本的揭示模块模式......varsomeArray=[];varpublicApi={someArray:someArray,someFunction:someFunction};functionsomeFunction(){someArray=['blue','green'];}module.exports=publicApi;当我使用这个模块时,当我调用someFunction时someArray没有改变...varmyModule=require('myModule');myModule.

javascript - 仅在闭包中定义的模拟/ stub 对象

首先,为了测试我的库,我使用了Mocha和Chai,但有时我可能也需要Sinon。这是图书馆:importServicefrom'service';//athird-partymoduleoutofmycontrolconstservice=Service(...);classMyLib{...uses`service`inabunchofdifferentways......service.put(foo)......service.get(bar)...}exportdefaultMyLib;这基本上是测试文件:importMyLibfrom'../my-lib.js';descr

javascript - JavaScript 中的递归闭包

functionbuildList(list){vari=0;varfirst=function(){console.log("in")console.log(i);}varSecond=function(){console.log("out")first();}returnSecond;}vara=buildList([1,2,3])console.dir(a);a();//Hereclosureiscreatedwhichhasfunctionfirst,Herefirstalsohasoneclosureofitselfthatmeansrecursiveclosure当我在Ch

JavaScript:词法闭包还是其他?

考虑这个脚本:functionObj(prop){this.prop=prop;}varNS={strings:['first','second','third'],objs:[],f1:function(){for(sinthis.strings){varobj=newObj(this.strings[s]);obj.f2=function(){alert(obj.prop);}this.objs.push(obj);}}}NS.f1();NS.objs[0].f2();//thirdNS.objs[1].f2();//thirdNS.objs[2].f2();//third不完全是

javascript - 如何使用javascript中的闭包访问函数内另一个范围内的变量?

我有以下功能makeStopwatch我正在努力通过以更好地理解javascript闭包:varmakeStopwatch=function(){varelapsed=0;varstopwatch=function(){returnelapsed;};varincrease=function(){elapsed++;};setInterval(increase,1000);returnstopwatch;};varstopwatch1=makeStopwatch();varstopwatch2=makeStopwatch();console.log(stopwatch1());cons

javascript - 使用 jQuery 的 each() 在 JavaScript 中更清晰(嵌套)的闭包

我想知道是否有一种更简洁(更简洁)的方法来完成each()在以下JavaScript代码中所做的事情。$(".moreinfodialog").before('Clickformoreinfo.').each(function(){vartemp=this;$(this).prev("a").click(function(){$(temp).dialog("open");returnfalse;});}).dialog({autoOpen:false,modal:true});请注意,最后一次调用对dom元素进行了重新排序,因此.moreinfodialog类不再位于href旁边。顺便