草庐IT

block_until_this_function_has_bee

全部标签

javascript - jQuery/JavaScript : My recursive setTimeout function speeds up when tab becomes inactive

我在构建的这个jQuery幻灯片插件中遇到了一个奇怪的小困境。这没什么特别的,我迄今为止编写的代码运行良好,但我注意到,当我离开网站运行并切换到新选项卡并继续在另一个选项卡中浏览网页时(Mac版Chrome在我的例子中),当我返回我的站点时,setTimeout调用似乎已经加速,而不是等待计时器完成触发事件,而是连续触发。这是我的(简化)代码:vartimer;varcounter;varslides;//collectionofalltargetedslides.//animatetothenextslidefunctionnextSlide(){//stoptimermethods

javascript - 为什么 toString() 和 this.toString() 在 Chrome 的控制台中产生不同的结果?

现在这根本没有任何实际意义,但我对我偶然发现的这个小怪癖很好奇。基本上,在Chrome的开发者控制台中,这toString()返回[objectObject],而这个this.toString()返回[objectDOMWindow]。据我所知,这只发生在控制台,可以看出onthisjsFiddle.有人在##javascript上找到了thislink解释函数的来源。但是,它没有解释在控制台内部或外部使用时行为中存在的差异。那么为什么toString()和this.toString()在Chrome的控制台中产生不同的结果? 最佳答案

JavaScript "this"引用了错误的对象

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭6年前。好吧,this并没有真正引用错误的对象,但我不知道如何引用正确的对象。functionsomeObj(){this.someMethod1=function(){varelementBtn=document.getElementById('myBtn');elementBtn.onclick=function(){this.someMethod2();//Iwantthis.someMethod2()tobecalled//...butittries

javascript - “var” 变量、"this"变量和 "global"变量 - 在 JavaScript 构造函数中

在我上一个问题之后,这个问题对我来说更准确:例子:functionFoo(){this.bla=1;varblabla=10;blablabla=100;this.getblabla=function(){returnblabla;//exposesblablaoutside}}foo=newFoo();我现在的理解:this.bla=1;//willbecomeanattributeofeveryinstanceofFOO.varblabla=10;//willbecomealocalvariableofFoo(will**not**becomeanattributeofeveryi

javascript - 语法 !function() { ... } 是什么意思?

我在简单、伟大、精彩和强大的库中找到了这个语法knockoutjs:!function(factory){...}function声明前的非符号(!)是什么意思?更新:源代码不再包含这个确切的语法。 最佳答案 !运算符表现正常,否定表达式。在这种情况下,它用于强制函数成为函数表达式而不是函数语句。由于!运算符必须应用于表达式(将其应用于语句是没有意义的,因为语句没有值),该函数将被解释为表达式。这样可以立即执行。function(){alert("foo");}();//errorsincethisfunctionisastatem

javascript - D3 : data, enter, append pattern 向外部 block 添加数据

我正在使用D3javascript库来呈现一些基本的网络图表。我要加三个的元素block,但D3将元素添加到的末尾阻止。这是完整的html源代码:varchartData=[1,2,3];d3.select("html").select("body").append("svg").data(chartData,function(d){console.log("datad:",d);returnd;}).enter().append("path").attr("d",function(d){returnd;});Chrome的开发者控制台显示生成的html是:varchartData=[

javascript - 如何摆脱 "Are you sure you want to leave this page"消息?

我怎样才能摆脱“你确定要离开这个页面”的消息?我尝试使用window.onBeforeunload=null,它适用于Chrome,但不适用于Firefox、InternetExplorer和Opera。提前致谢。 最佳答案 我不确定为什么您的脚本在Chrome中运行,所有浏览器都应该以相同的方式运行。是否有可能您删除事件监听器的代码块出于某种原因仅在Chrome中执行?无论如何,如果您设置了window.onbeforeunload=someFunction;,您可以使用window.onbeforeunload=null使其无效

javascript - 为什么嵌套局部函数将 `this` 绑定(bind)到窗口而不是父窗口

我正在阅读一些documentationaboutjavascript并偶然发现了以下代码示例:varo={value:1,outer:function(){varinner=function(){console.log(this);//boundtoglobalobject};inner();}};o.outer();它输出窗口。我不明白为什么this关键字绑定(bind)到全局对象(window)而不是父对象(外层).如果你想从inner的范围访问outer,你必须传递outer的this(这就像将outer本身)作为参数传递给它的本地inner函数。所以,正如预期的那样:varo

javascript - $.递延 : How to detect when every promise has been executed

我有许多异步任务需要完成,所以我使用了promises。我需要检测每个promise何时执行(解决和拒绝)。在那之前我不能继续执行。我正在使用这样的东西:$.when(promise1,promise2,...).always();但是这段代码是错误的,因为when方法有惰性求值,一旦其中一个promise失败它就会返回。因此,always回调也会在其中一个promise失败时立即运行。我在考虑编写一个解决方法,但这个用例太常见了,也许有人已经这样做了,或者甚至有一种方法可以只使用jQuery来做到这一点(如果没有,最好添加一个Promise.whenNonLazy或将来的Promis

javascript - `this` 和 `prototype` 有什么区别? javascript 哎呀

这个问题在这里已经有了答案:Useof'prototype'vs.'this'inJavaScript?(15个答案)关闭8年前。在codecademy.com上学习javascript类(class)时,我变得有点困惑。首先我们学习了如何向类中添加方法:functionDog(breed){this.breed=breed;this.sayHello=function(){console.log("Hellothisisa"+this.breed+"dog");}};varsomeDog=newDog("goldenretriever");someDog.sayHello();然后我