草庐IT

行为不当

全部标签

javascript - 难以包装 javascript 行为并将其保留以备后用

我正在使用javascript进行编程并使用Promises,现在正在使用Q.js。我终于明白了自己在做什么,但在特定行为上遇到了困难。我有一种情况,我将相当相似的代码重复了几次。它基本上是这样的......{//startvardeferred=Q.defer();//dosomething{deferred.resolve();}returndeferred.promise;}好吧,这一切都很好,但每次都重复所有这一切让人很烦,所以我试图把它包起来。这只是一个示例,它不是整个javascript文件,因为大多数其他部分都不相关。{varlist=[];queue=function(

javascript - ng-include 内部和外部的 $scope 行为不同

所以我做了一些实验来在2个不同的选择框上创建一个ng-change行为,同时携带相同的$scope。一个在ng-include指令内,同时另一个在ng-include指令之外,有趣的部分是虽然当我实现数据绑定(bind)时它结果没问题,但是当我试图查看我的控制台选项卡时它返回不同在ng-include指令之外的那个没问题,而在ng-include指令里面的那个总是返回值'a'或静态值这是index.html模型AB{{list}}//thisscopecariestest.html这是test.html模型AB{{list}}这是Controllervarapp=angular.mod

javascript - 试图理解递归函数的类似堆栈的行为

我正在MDN上阅读关于函数的文章,我到达了递归部分,但我不明白最后一部分谈论使用类似堆栈的行为。例子是那个:functionfoo(i){if(i关于该功能,我了解何时显示begin日志,但我不知道何时显示end日志。有人可以帮我解释一下吗? 最佳答案 所以基本上在执行i-1时每次调用foo时它都保持函数打开,它没有返回。它一直在继续,因此begin不断被调用,一旦它达到0,最后一个函数调用就会返回。一旦发生这种情况,其他foo调用也可以开始完成。它们将从最旧到最新完成。您可以通过PhilipRoberts使用放大镜看到它的可视化.

javascript - 使用 "eval"创建匿名方法 - 浏览器特定行为

我使用jQuery,我需要使用eval()函数生成一个匿名方法。以下行适用于Opera但不适用于IE、FF、Chrome:varcallbackStr="function(){alert('asdf');}";varcallback=eval(callbackStr);callback();此代码适用于所有浏览器:varcallbackStr="varcallback=function(){alert('asdf');}";eval(callbackStr);callback();你看,我已经解决了我的问题。但我想知道,到底发生了什么。任何人都可以向我解释这种行为,或者告诉我在哪里可以

javascript - Chrome 扩展加载行为

我正在为chrome扩展开发一个设置页面。在我的options.js文件中,我想用一些默认值初始化设置,为此我使用window.onload=initSettings();。在我的initSettings()函数中,我试图通过document.getElementById("someId")从DOM访问输入。但是这个调用总是返回null。我认为window.onload事件是在所有DOM元素就位后触发的。我做错了什么? 最佳答案 我在options.js文件的顶部有这个-自从我上次使用扩展已经很久了,我不能确定它是否有任何帮助。值得

javascript - node.js 和浏览器之间关键字 "this"的不同行为

我已经尝试在ie、firefox和node.js中使用以下代码varx=10;varo={x:15};functionf(){console.log(this.x);}f();f.call(o);在浏览器中的结果是10、15,但是在node.js中的结果是undefined,15。请向我解释一下“this”关键字在浏览器和node.js中的不同行为是什么?我已经阅读了很多页面,但没有任何明显的答案。提前致谢。 最佳答案 在Nodejs中加载的Javascript文件会自动包装在匿名函数中。所以在Node中你真正运行的是:(funct

javascript - 当没有匹配值时,解决方法 jquery 在 SELECT 上设置 val() 行为

如果我有这个选择框:-ABC如果我尝试运行$("#s").val("4"),选择会变为“0”。(请参阅此处的行为:http://jsfiddle.net/4NwN5/)如果我尝试将选择框设置为选择框中不存在的值,我该如何做到这一点,则不会发生任何变化? 最佳答案 你可以这样试试:vartoSel=3;//Sayyourvalueisthisif($("#soption[value="+toSel+"]").length>0)//Checkifanoptionexistwiththatvalue{$("#s").val(toSel);

javascript - new String() 的行为不像对象那样的数组

varnice=newString("ASH");nice;//String{0:"A",1:"S",2:"H",length:3,[[PrimitiveValue]]:"ASH"}varreverseNice=Array.prototype.reverse.call(nice);reverseNice.toString();//"ASH"而我期望reverseNice是“HSA”。 最佳答案 不能改nice,试试看;nice[0]='f';nice[0];//"A"如果您想使用Array方法,请先将其转换为真正的Arrayvarr

javascript - 删除元素后的 MutationObserver 行为

我有一个MutationObserver绑定(bind)到#foohtml元素。vartarget=document.querySelector("#foo");varobserver=newMutationObserver(function(mutations){mutations.forEach(function(mutation){//...});});当用户点击#button元素时,#foo会被移除并在一秒钟后再次出现。ClickmetoremovetheFoo!Hello,I'mFoo!正如我所注意到的,在删除并重新创建#foo后,观察器停止工作。这是正常行为吗?那么,我需要

javascript - 随时间褪色的 Canvas 绘画 |奇怪的阿尔法分层行为

我正在绘制一个未被清除的Canvas,并使Canvas随着时间的推移逐渐变成纯色,或者在alpha中逐渐消失以显示后面的图层。我的第一直觉是简单地用每帧的低alpha在绘图上填充一个矩形,这样填充颜色就会逐渐累积并淡出绘图。但我发现了一些奇怪的行为(至少对我来说,我确信这是有原因的)。填充颜​​色永远不会完全累积。结果会根据油漆和填充颜色是否比彼此更亮/更暗而变化。我发现这个问题有人和我做同样的事情:fadeoutlinesafterdrawingcanvas?顶部的答案看起来不错,和我试过的一样。但它只适用于白底黑字。这是同一个fiddle的不同颜色的另一个版本,你会看到绘图永远不会