草庐IT

11函数入门

全部标签

javascript - 如何使这个同步递归函数异步

我有一个递归遍历树的javascript函数。它有两个“标志”变量,在函数本身的范围之上设置为false或true,因此如果在递归“walkTree”函数时将标志设置为true一次,则每次递归都会为true.另一方面,for循环也可能存在带有返回值的函数(如果有东西是for的话)。我遇到的问题是当递归太多时我会出错。我想通过使这个递归函数异步来防止这个问题,我试过将for循环内的subwalkTree()调用放到setTimeout中,但我现在遇到的问题是函数的其余部分将在其余异步操作完成之前执行(并可能返回错误的值)。那么我怎样才能使这个异步,同时仍然确保返回正确的值(而不是递归中的

javascript - 在 FF 11 中加载 jquery UI 出现错误::"TypeError: a is undefined"

我在我的ff扩展中使用了jquery(也有ui)。一切正常,直到ff10。varloader=Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);loader.loadSubScript("chrome://myext/content/js/jquery-1.7.2.js",wnd);varjQ=wnd.jQuery.noConflict(true);try{loader.loadSubScript("chr

javascript - 用于 javascript 对象的安全属性引用的库函数

考虑以下代码:functionfoo(handlers){callSomeFunction(handlers.onSuccess,handlers.onFailure);}调用者可以:foo({onSuccess:doSomething,onFailure:doSomethingElse});或者只是foo()如果他/她没有什么特别的事情要做。上述代码的问题在于,如果未定义“处理程序”,就像上面简单的foo()调用一样,那么在执行callSomeFunction(handlers.onSuccess,handlers.onFailure)期间将抛出运行时异常).为了处理这种情况,可以将

Javascript 函数作用域循环

Here'sanexample一个简单的JS循环没有按预期运行的情况,因为循环变量不在单独的范围内。通常提出的解决方案是构造一段看起来不愉快的循环代码,如下所示:for(variinobj){(function(){...obj[i]...//thisnewshadowedihereisnownolongergettingchangedbyforloop})(i);}我的问题是,这可以改进吗?我可以用这个吗:Object.prototype.each=function(f){for(variinthis){f(i,this[i]);}};//leadingtothissomewhatm

javascript - 嵌套函数中的函数上下文 ("this")

当您在Javascript中调用顶级函数时,函数内的this关键字指的是默认对象(如果在浏览器中则为window)。我的理解是,调用函数作为方法是一种特殊情况,因为默认情况下它是在窗口上调用的(如JohnResig的书《JavaScript忍者的secret》第49页中所述)。事实上,以下代码中的两个调用是相同的。functionfunc(){returnthis;}//invokeasatop-levelfunctionconsole.log(func()===window);//true//invokeasamethodofwindowconsole.log(window.func

javascript - 在 knockout.js 中执行所有 observableArray 依赖项后如何执行函数

我有一个observableArray。我想在从observableArray中删除或添加项目后以及在完成其所有依赖项订阅调用后执行函数。喜欢:observableArray.push(newObject);//Ican'tputmyfunctioncallatthispointbecauseifanysubscriptionis..//withnewObjectorobservableArraywillexecuteasynch,andi..//wantmyfunctiontoexecuteafterallsuchsubscriptionexecution.有没有办法在knockou

javascript - 哪个 Javascript 函数放置更好?

我正在尝试构建一个游戏,我注意到对于组织来说,将一些函数放在其他函数中可能会更好,因为它们专门用于原始函数。例如:functionfn1(){fn2();functionfn2(){//Stuffhappenshere}}fn1被多次调用,fn1会在执行过程中多次调用fn2。当fn1被调用时,fn2是否每次都必须重新处理(因为缺少更好的词)?我是否因此而失去了性能?我应该像这样将fn2放在fn1之后吗?functionfn1(){fn2();}functionfn2(){//Stuffhappenshere} 最佳答案 你可以这样做

javascript - 调用 window.open() 在 IE 11 + Windows 8.1 Preview 上返回 null

我正在做这样的事情,其中​​MyConfig是一个aspx页面。winOpen=window.open('/Account/Register','MyConfig','toolbar=no,status=no,location=no,menubar=0,resizable=yes,scrollbars=yes,width='+wWidth+',height='+wHeight+',top='+wTop+',left='+wLeft);winOpen.focus();它返回null。它在chrome+WIndows8.1预览版中工作正常,但在IE11中不工作。编辑我在问题中又添加了一行,

javascript - AngularJS 选择 ng-change 函数找不到选定的模型

我在处理一些基本的Angular数据绑定(bind)时遇到了问题。我的看法:AllPersons我的Controller:$scope.testdataset=[{name:"bill"},{name:"bob"},{name:"batman"}];$scope.personChanged=function(person){console.log(person);}效果很好——选择的名称已记录。Butthissimplyprints"undefined"whenanameisselected查看:AllPersonsController:$scope.testdataset=[{nam

javascript - TypeError : jQuery. easing[this.easing] 不是函数

这个问题在这里已经有了答案:TypeError:p.easing[this.easing]isnotafunction(12个答案)关闭6年前。我需要为我的jQuery链接添加一个效果,但它只适用于最低1.7.1,而我有另一个代码只适用于1.10.2。此代码仅适用于1.10.2$(document).ready(function(){varmenu=document.querySelector('#menu-bar-wrapper');varorigOffsetY=menu.offsetTop;functionscroll(){if($(window).scrollTop()>=ori