草庐IT

this指向

全部标签

javascript - Webpack babel-loader runtime : Module build failed: TypeError: this. setDynamic 不是函数

我正在尝试将babel-loader与babel-plugin-transform-runtime一起使用。我已按照以下说明进行操作:https://github.com/babel/babel-loader#babel-is-injecting-helpers-into-each-file-and-bloating-my-code相关代码:rules:[//the'transform-runtime'plugintellsbabeltorequiretheruntime//insteadofinliningit.{test:/\.js$/,exclude:/(node_modules

javascript - 在 JavaScript 中更改函数 "this"值

我正在用一些方法构建一个库,我有一个方法extend和一种方法load.我希望它像这样工作:Core.extend('name',function(message){this.innerHTML=message;});然后要实际运行它,您需要执行以下操作:Core.load('name','Hey!');Core.extend()创建一个具有基于名称的唯一ID的元素。我想制作this==生成的.我知道.call()和.apply(),显然,但它没有改变this它只更改扩展中的回调参数。这是扩展和加载的代码:Core.extend()varextend=function(name,fun

javascript - IE的attachEvent中的 'this'是什么

我厌倦了编写jQuery,所以我决定学习一些原始的JavaScript。IE的attachEvent中的某些内容让我感到困惑。这是代码:varbtn=document.getElementById('myBtn');btn.onclick=function(){alert(window.event.srcElement===this);//true,Iknowwhy.};btn.attachEvent('onclick',function(event){alert(event.srcElement===this);//fasle,butwhy?});我尝试使用IE的内置调试工具,但它只

javascript - 如何在 this.props.children 中访问 React 对象的类名

在this.props.children中有一些子组件的React组件渲染方法中。如何获取每个child的组件(类)名称以区分它们?React.Children.map(this.props.children,function(child){//howcanIgettheclassnameofachildorsomeotheridentifier}) 最佳答案 警告:如果使用缩小,这将无法在生产中使用在ES6中,每个函数的名称都存储在属性function.name中所以你可以用importReactfrom'react'...get

javascript - 为什么 "this"在粗箭头函数定义中未定义?

这个问题在这里已经有了答案:MethodsinES6objects:usingarrowfunctions(6个答案)关闭6年前。首先我尝试了这个-constprofile={name:'Alex',getName:function(){returnthis.name;}};效果很好。现在我用粗箭头尝试了同样的事情。在那种情况下,“this”未定义。constprofile={name:'Alex',getName:()=>{returnthis.name;}};这给了我一个错误TypeError:Cannotreadproperty'name'ofundefined我了解到,粗箭头语

Javascript:如何确定链接是否指向与其所在页面相同的域?

为了通过谷歌分析跟踪非HTML文档,我需要上述算法。它应该:不对域进行硬编码忽略协议(protocol)(即http/https)不用担心“www”的存在/不存在(任何绝对链接都将以“www”为前缀,所有页面都将通过“www”提供服务)这很复杂,因为我需要通过从IE专用的“attachEvent”调用的函数访问它。更新抱歉,我对这个问题的措辞真的很糟糕。真正的问题是通过事件让它工作,因为IE有自己的事件处理世界。采取以下措施:functionadd_event(obj){if(obj.addEventListener)obj.addEventListener('click',track

javascript - 为什么人们在许多 jQuery 插件中分配 $this = $(this) ?

我经常将其视为插件的第一行:$this=$(this);这只是为了提高效率,避免每次都获取jQuery对象吗? 最佳答案 缓存jQuery对象而不必在每次需要时都实例化它。 关于javascript-为什么人们在许多jQuery插件中分配$this=$(this)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6261684/

javascript - backbone.js 模型指向嵌套模型的相同实例

使用backbone.js,这是一个快速测试来演示我在使用嵌套模型时遇到的问题。前言我有一个Obj模型,其中包含2个嵌套模型,Obj1和Obj2。Obj模型本身有一个View(ObjView),主页面本身也有一个View(BodyView)。主页只有一个按钮,id=add。每次单击按钮时,都会向ObjCollection添加一个新的Obj,并且ObjView会向页面添加一个按钮(id=clickMe)。clickMe按钮绑定(bind)到一个testFunc,console.logsthis.model和this.model.get("obj1")。问题通过检查console.logs

javascript - 为什么要创建一个值为 this 的变量

我在JavaScript中看到过很多这种情况,我确实记得找出原因,但我不记得答案了。我猜这与范围和在“类”外部调用的函数有关,但为什么要这样做(最好概述一个示例):functionmyClass(){varself=this;//...this.myArray=[];this.myFunc=function(){alert(self.myArray.length);};} 最佳答案 为了锁定变量作为closure的一部分.例如:MyClass.prototype.doStuff=function(){this.foundItems=

javascript - 为什么 `this` 在 ES6 箭头函数中不起作用?

这个问题在这里已经有了答案:ArrowFunctionsandThis[duplicate](5个答案)关闭7年前。这是我的代码:'usestrict';letobj={username:'HansGruber',hello:()=>'hello,'+this.username};console.log(obj.hello());但输出是:hello,undefined。我希望输出为:你好,HansGruber。我想我还没有理解箭头函数中的this。谁能给我一个明确的解释?