草庐IT

this_file

全部标签

javascript - 为什么我在 Javascript 中丢失了 this 的上下文?

我有这个简单的代码:varo={a:1,b:2,f1:function(){alert(this.b);}}varo2={a:11,b:22,f2:function(j){j();}}但是运行这段代码:o2.f2(o.f1)产生undefined。(虽然我期待结果是“22”)现在,我知道上下文已经消失了。因此,如果我更改o2中的代码到:f2:function(j){j.apply(this);}它确实有效。但我的问题是:我在什么阶段失去了上下文?我不明白:什么时候j()正在运行,是一个bo2中的属性(property)对象。我错过了什么?jsbin 最佳答案

javascript - OO JavaScript - 避免 self = this

有谁知道在以OO方式使用JavaScript时避免声明varself=this的方法吗?我经常看到它并且很好奇它是否只是您必须做的事情,或者是否真的有一种方法(也许是类库?)可以让您绕过它?我确实意识到为什么有必要(这具有功能范围)。但是您永远不知道那里可能有什么聪明的方法..例如,我通常在JS中这样编写我的“类”:functionMyClass(){}MyClass.prototype={firstFunction:function(){varself=this;$.ajax({...success:function(){self.someFunctionCall();}});},s

javascript - 在 Jest 中调用 React 的 this.props.onClick(this) 时到底应该测试什么?

我一直在为我的所有事件(当然还有其他一切)编写测试,但我不知道如何测试this.props.onClick(this)在子组件上被调用。我的子组件有以下代码:closeModal:function(){this.props.onClick(this);},render:function(){return()}家长是这样听的:onCloseModal:function(){this.replaceState({modalStatus:'hidden'});},render:function(){return()}我知道如何测试parent的点击事件,我也知道如何在测试中调用child的按

javascript - 如何使用 this 的 Controller 范围版本来引用 JS 中的当前 Controller ?

我遇到了以下问题。我的JavaScript结构如下所示。我创建了一个包含所有Controller的对象。这些控制者有自己的责任。以下代码属于main.js首先调用的文件:main.jsvarApp={};App.init=function(){console.log('init');App.uiController.init();App.heroController.init();}在函数内init()我称Controller的初始化程序。Controller对象如下所示:uiController.jsApp.uiController={root:0,init:function(){/

javascript - 如何禁用/覆盖 "Do you want to leave this site?"警报?

我在弹出窗口中有一个表单,它是通过AJAX调用加载的。它是使用RoR的form_for标签构建的。即使我不修改其中的任何字段并尝试导航到另一个页面,chrome也会显示以下警告。我想禁用这个警告框。可能吗?如果是,如何?我已经试过了this,但它不再有效。以下是环境设置,Rubyversion=1.9.3Railsversion=3.1.4Chromeversion=52jQueryversion=1.10.2 最佳答案 显示警报是因为在代码的某处,您在卸载事件之前覆盖了窗口,当您尝试关闭窗口时,该事件会触发。尝试禁止此事件将此放在

javascript - 玩! 2.4 : How to allow CORS from origin file://

我正在使用play2.4制作公共(public)RESTAPI。我添加了允许所有来源和header的CORS过滤器。从application.conf中查看:play.filters{#CORSfilterconfigurationcors{#Thepathprefixestofilter.pathPrefixes=["/"]#Theallowedorigins.Ifnull,alloriginsareallowed.allowedOrigins=null#TheallowedHTTPmethods.Ifnull,allmethodsareallowedallowedHttpMetho

javascript - 当您收到消息 "Object doesn' t support this property or method”时,您如何找出 "Object"是什么?

当您收到IE错误消息“对象不支持此属性或方法”时,您如何确定“对象”是什么?它总是一样的吗?如果不是,有没有办法使用诊断工具或控制台找出它是什么? 最佳答案 要获取IE的调试信息,必须开启脚本调试:在InternetExplorer中,从“工具”菜单中选择“Internet选项”。在“Internet选项”对话框中,单击“高级”选项卡。在“高级”选项卡上的“浏览”下,清除“禁用脚本调试”。单击“确定”。http://msdn.microsoft.com/en-us/library/ms241741%28v=vs.80%29.aspx

javascript - 如何使用 nervgh 的 Angular-File-Upload 发送 formData

我正在使用nervgh的Angular-File-Uploadhttps://github.com/nervgh/angular-file-upload当我对preOpKey进行硬编码时,它的工作就像一个魅力。我想要做的是将preOpKey与文件一起发送,以便我可以将文件保存到数据库中的适当记录中。angular-file-upload在我在$scope.OnPreinspectionSubmit()中填充的API中有一个fileData但由于某种原因我找不到它在我的MVCController中调用一次SaveFile()的值。我只需要知道如何将一个值与我的文件一起传递,然后在我的MV

Javascript : calling function from another file

我只是Javascript的新手,所以当我阅读Javascript文档时,发现有许多我无法理解的复杂结构。这是我正在阅读的Javascript代码的简短说明:在我的例子中有两个主要文件:Helper.js和Circle.js。Helper.js中有一个方法名:using:function(param1,param2)。下面是Circle.js的代码:Helper.using('py.Figures',function(ns){ns.Circle=function(params){//someadditionalmethodsandcodehere}ns.Alert=function()

javascript - 将 'this' 分配给 Javascript 中的变量

出于两个原因,我在Javascript中采用面向对象的方法。第一,因为它可以帮助我学习,第二,以防万一我的代码被分发。我已经将函数分配给变量并将this用于公共(public)变量。但是,我在使用this时遇到了问题。当我在“私有(private)”函数中时,this指的是不同的范围,我无法访问this下的变量。我将说明我的观点。varClassObject=function(){this.var1='Hello';varvar2=786;this.func1=function(){alert(this.var1);//AlertsHelloalert(var2);//Alerts78