草庐IT

函数闭包

全部标签

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旁边。顺便

javascript - 区分闭包和局部变量

闭包中的局部函数声明了一个与闭包中存在的同名变量。那么,我们如何从本地函数访问闭包的变量呢?functionclosure(){varxVar;functionfunc1(){varxVar;//howtodistinguishlocalandclosurescopes.returnxVar;}returnfunction(){returnfunc1();};}创建一个私有(private)对象并将私有(private)变量作为该对象的属性可能会有所帮助。但我想知道是否有更好、更简洁的解决方案。作用域链有帮助吗?我已对其进行编辑以使其完全关闭。无论如何,闭包在这里不是很重要,可以考虑将

javascript - 一个关于Javascript函数的简单问题,调用/定义的差异

有人可以解释一下以下函数定义之间的区别吗?varalertMessage=functionalertMessage(message){alert(message);}varalertMessage=function(message){alert(message);}每个的含义是什么?谢谢! 最佳答案 都是函数表达式,主要区别是第一个是命名的,第二个是匿名的。例如:vartest=functiontest(message){alert(message);};vartest1=function(message){alert(messag

javascript - 如何从母版javascript调用子页面的javascript函数

我正在编写一个ASP.Net应用程序。我正在其中使用母版页。我有几个子页面,其中包含一些java脚本函数;比方说;functionChildPageFunction(){//Dosomething;}与母版页java脚本函数一样;functionMasterPagefunction(){//NeedtocallChildPagefunction();here}现在可以从MasterPageFunction()调用ChildPageFunction()了吗?如果有人知道如何做到这一点,请帮助我。提前致谢。 最佳答案 是的。只需从Mas

javascript - 从 Javascript 中的嵌套函数返回值

这个问题在这里已经有了答案:HowdoIreturntheresponsefromanasynchronouscall?(41个回答)WhyismyvariableunalteredafterImodifyitinsideofafunction?-Asynchronouscodereference(7个答案)关闭1年前。考虑这段代码(缩短)functiongetSecret(){db.transaction(function(transaction){transaction.executeSql('SELECT*FROMtableLIMIT1;',null,function(trans

javascript - 如何将同一闭包下的对象分离到不同的文件中

我的客户有以下结构;varmyObject=(function(){varmainObjectList=[];varglobalObject={init:function(mainObjectId){varlogger={};varutilityObject1={};varutilityObject2={};varmainObject={};mainObjectList.push(mainObject);},//initsomeOtherMethods:function(){}};//globalObjectreturnglobalObject;})();我可以和我的客户说我的对象.i

javascript - 什么会导致已部署的 GWT 应用程序出现 UmbrellaException 匿名函数?

我似乎遇到了一个奇怪的问题。在本地环境中使用我的GWT应用程序时,一切正常。问题出现在我编译和部署我的应用程序之后。当我完成我的项目工作流程并单击某个链接以切换到新面板时,我收到以下错误(来self在Chrome中的控制台):Uncaughtcom.google.gwt.event.shared.UmbrellaException:Oneormoreexceptionscaught,seefullsetinUmbrellaException#getCauses(anonymousfunction)此错误是由GWT在编译时生成的缓存文件之一引发的。但这在本地部署的程序(从Eclipse部

javascript - 是否可以让 Google Closure 编译器*不*内联某些函数?

Closure编译器正在内联一个函数,但如果该函数未被内联,代码大小会更小(我只关心代码大小——这是针对JS1k的)。我可以告诉编译器我不想内联该函数吗?编辑:为了更好地解释,这是我的函数:functionlineTo(x,y){a.lineTo(x,y);}Canvas上下文中的a。因为代码中有很多a.lineTo,所以用这个函数是值得的。像这样,我的代码是1019字节(所有的lineTo都被a.lineTo替换了)。如果我将函数更改为:functionlineTo(x,y){a.lineTo(x,y);console.log();}新行以某种方式强制编译器不内联此函数,这给了我99

Javascript Focus() 函数不起作用

我有一个我想设置焦点的文本框,但它不起作用。document.getElementById("txtCity").focus();有什么想法吗? 最佳答案 也许您在呈现输入元素之前调用JavaScript?将输入元素放在JavaScript之前,或者等到页面加载后再触发JavaScript。按照这个顺序,它工作得很好:document.getElementById("test").focus();在jQuery您可以将您的代码放在.ready()中当DOM完全加载时首先执行代码的方法:$(document).ready(functi

javascript - 从javascript中的构造函数显式返回值

http://ejohn.org/blog/building-a-javascript-library/在上面的链接中,如果调用者最初忘记了,JohnResig建议在构造函数中调用并返回newfoo。这对我来说有些道理,但后来我得到了一个严格的错误,因为我的构造函数并不“总是”返回一个值。在对javascript中的构造函数有了一点了解后,我不再返回this,因为new会自动返回。我的问题是,我应该...不使用描述的防御技术?在我的构造函数结束时返回它?我不知道的神秘选项? 最佳答案 返回this是没有意义的,因为如果调用者忘记添加