草庐IT

in_this_iter

全部标签

javascript - 为什么需要匿名函数来使用 setTimeout 保留 "this"

我已经多次使用setTimeout传递函数作为引用,例如setTimeout(someFunction,3000);在某些情况下,为了保留this的值,我不得不事先将其分配给一个变量,但不明白为什么以下内容不起作用:varlogger={log:function(){varthat=this;console.log(that.msg);setTimeout(that.log,3000);},msg:"test"};logger.log();然而,使用匿名函数确实有效:varlogger={log:function(){varthat=this;console.log(that.msg)

javascript - karma Jasmine 测试 : Highlight diff in terminal

我将Karma与Jasmine一起用于我的测试。在某些测试中,我有测试所依赖的大对象。当我做类似的事情时expect(obj).toEqual(expectedObj);和obj!=expectedObj,我在终端中收到一条错误消息。但是这个错误真的很长,因为它包含了两个对象,而且很难看出两个对象在哪些部分不同。那么,有没有可以与karma一起使用的终端荧光笔?这样,就更容易找出问题所在。 最佳答案 我遇到了同样的问题,为我做了什么karma-jasmine-diff-reporter.只需安装它:npminstallkarma-j

javascript - Uncaught ReferenceError : Worker is not defined while trying to create a Worker within another Worker in Chrome

这link说:Workersmayspawnmoreworkersiftheywish.So-calledsub-workersmustbehostedwithinthesameoriginastheparentpage.Also,theURIsforsubworkersareresolvedrelativetotheparentworker'slocationratherthanthatoftheowningpage.Thismakesiteasierforworkerstokeeptrackofwheretheirdependenciesare.但是当我尝试在另一个Worker中创

javascript - JSX for...in 循环

给定这个对象:lstsocials={foo:'http://foo'}我想在JSX中循环遍历它。这有效:letsocialLinks=[]letsocialBarfor(letsocialinsocials){socialLinks.push({social})}if(socialLinks){socialBar={socialLinks}}但这不是(socialundefined):letsocialBarif(socials){socialBar=for(letsocialinsocials){{social}//socialisundefined}}第二个例子中social未定

JavaScript - window.scroll({ 行为 : 'smooth' }) not working in Safari

正如标题所说,它在Chrome上运行得非常好。但在Safari中,它只是将页面设置到所需的顶部和左侧位置。这是预期的行为吗?有没有办法让它很好地工作? 最佳答案 使用smootscrollpolyfill(适用于所有浏览器的解决方案),简单适用且轻量级依赖:https://github.com/iamdustan/smoothscroll通过npm或yarn安装后,将其添加到您的ma​​in.js、.ts文件(第一个执行的文件)importsmoothscrollfrom'smoothscroll-polyfill';//orifl

javascript - HTML5 Canvas : Moving/panning world with arrow keys in EaselJS

经过一年的学习和反复试验,我觉得我开始对JavaScript有了更多的了解。所以,现在,我想尝试编写一个简单的2D平台游戏(想想《super马里奥世界》或《刺猬索尼克》)。为此,我将使用EaselJS库。我想弄清楚如何使用左右箭头键在Canvas中移动/平移“世界”。我知道如何在箭头键的keydown上运行函数,但我不太确定应该如何处理移动/平移。当按下一个键时,我是否应该调整Canvas中每一个东西的位置/坐标?或者我是否应该将所有东西都放在一个容器中并移动容器的位置/坐标?我会感激任何能将我推向正确方向的东西。泰夫姆:)更新了答案Thechosenanswerbelow确认我确实必

javascript - React.JS this.state 未定义

我目前在React.JS中有这个组件,它在数组中显示传递给它的所有图像,onMouseOver它在下面显示一个按钮。我计划使用setState检查变量hover是真还是假,并相应地切换该图像的按钮,但是我不断收到以下错误:UncaughtTypeError:Cannotreadproperty'state'ofundefinedvarImageList=React.createClass({getInitialState:function(){returnthis.state={hover:false};},getComponent:function(index){console.lo

Javascript 为什么 FOR IN 是一种不好的做法?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:JavaScript“For…in”withArrays人们总是告诉我使用FORIN是一种不好的做法,你能告诉我为什么吗?为什么for和i一起使用更好?我一直喜欢使用FORIN,因为我也使用PHP,我经常使用foreach,它与javascript中的FORIN非常相似:)

javascript - Jquery - 使用 "this"获取属性

这可能是一件非常简单的事情,但我似乎无法让它工作,我也不确定为什么。我安装了jquery,当我点击它时,我试图获取“this”元素的属性。现在我的代码如下所示:url=$(this).attr("href")当我通过单击链接调用此函数时,它告诉我变量“url”未定义。所以很明显,当我点击链接时,它并没有接收到“this”。我正在尝试传递anchor标记的href以用作我的变量。我忽略了什么?再一次,我知道这很简单,但我似乎无法弄清楚所以感谢您花时间帮助我。谢谢。url="push1";$("a").live("click",function(event){event.preventDe

javascript - d3 : what is the self as in d3. select(self.frameElement).style ("height", height + "px");

我在许多D3示例中看到过如下语句。但是,我无法找出它的含义。特别是,我不知道这个self变量指的是什么。此外,这是否体现了某种D3魔术/惯例,或者它只是一个临时的东西?非常感谢。d3.select(self.frameElement).style("height",height+"px");顺便说一句,here是我复制上面语句的例子。 最佳答案 self:如果没有重新定义(通常作为this的副本),那么它就是始终指向windowwindow对象。因此它们可以互换使用。window.frameElement:返回嵌入窗口的元素(例如或