这个问题在这里已经有了答案:ArrowFunctionsandThis[duplicate](5个答案)关闭7年前。这是我的代码:'usestrict';letobj={username:'HansGruber',hello:()=>'hello,'+this.username};console.log(obj.hello());但输出是:hello,undefined。我希望输出为:你好,HansGruber。我想我还没有理解箭头函数中的this。谁能给我一个明确的解释?
我发现了一个有趣的案例,其中“usestrict”在javascript中没有按预期工作。后续功能"usestrict";vary=()=>{console.log(this);}varx=function(){console.log(this);}x();//undefinedduetousestricty();//windowobject我觉得fatarrowcontext也应该被undefined覆盖,或者我的假设是错误的? 最佳答案 MDN说arrowfunctions:RelationwithstrictmodeGiven
这个问题在这里已经有了答案:MethodsinES6objects:usingarrowfunctions(6个答案)关闭6年前。我发现在嵌套对象文字中使用箭头函数时,“this”关键字似乎总是指向global。根据其他问题,以下代码片段可以解释为箭头函数的“this”是在词法上下文中定义的。varc=100;vara={c:5,fn:()=>{returnthis.c;}};console.log(a.c);//100但是,我无法理解以下代码(嵌套对象字面量):varc=100;vara={c:5,b:{c:10,fn:()=>{returnthis.c;}}}console.log
首先,我创建一个ES5函数,然后创建它的原型(prototype):varPerson=function(){};Person.prototype.city=function(){return'NewYork'}我在这里没有错误。但是当我使用ES6粗箭头函数创建相同的对象时,我得到Cannotsetproperty'city'ofundefined:letPerson=()=>{};Person.prototype.city=()=>{return'NewYork'}这是为什么? 最佳答案 因为根据定义,箭头函数没有原型(proto
我正在编写一个javascript代码来限制可以输入文本框的键。functionkeyRestricted(e){varkeypressed;varkeychar;varkeycheck;//IE-keyCode//Netscape/Firefox/Opera-whichkeypressed=e.keyCode||e.which;keychar=String.fromCharCode(keypressed);//alert(keychar);keycheck=/[a-zA-Z0-9\b]/;returnkeycheck.test(keychar);}//keyrestricted我的正
使用Babel,我可以看到callback=()=>{};编译为callback=functioncallback(){};这是我所期望的。但是,当我尝试将它与||一起使用时出现错误callback=callback||()=>{}我希望它等同于callback=callback||function(){};为什么这是一个错误?另外,对于这种熟悉的语法,是否有更正确的ES6版本? 最佳答案 失败是因为语法无效。使用以下命令使其工作:callback=callback||(()=>{})如果您不以这种方式包装它,它将被解释为您键入以下
我试图通过Angular2Observable订阅方法的例子来理解typescript的箭头函数。有人可以解释一下吗:我有这段有效的代码:this.readdataservice.getPost().subscribe(posts=>{this.posts=posts;});但是如果我用这个应该是一样的吗?但这不起作用。this.readdataservice.getPost().subscribe(function(posts){this.posts=posts;}); 最佳答案 箭头函数是匿名的,不绑定(bind)它自己的thi
我正在使用JavaScript和Prototype并捕捉用户的按键操作。我用这样的代码成功地捕获了返回、空格和箭头:Event.observe(window,"keyup",function(e){switch(e.keyCode){caseEvent.KEY_RETURN:caseEvent.KEY_RIGHT:case32://space//dosomethingbreak;}});我的问题是空格和箭头一直在滚动页面。有没有办法阻止他们滚动页面? 最佳答案 使用e.preventDefault()停止浏览器的默认行为
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我有以下HTML结构('ulli'呈现为下拉/选择)NewYorkLondonParisSydney需要JavaScript/jQuery代码来捕获向下箭头键按下事件(在输入时),这将选择第一个“li”元素连续向下键选择下一个'li'元素;和向上键选择前面的“li”元素。
关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭6年前。Improvethisquestion我在我的一个react组件中有这个功能。exportdefaultclassEventTagsextendsReact.Component{showAll()=>{this.setState({showAll:true,showBtn:false});}}当webpackwatch命中它时,我在箭头