TOGOUTECH

arrow-functions

全部标签

javascript - ES6 类中的 ES6 函数、箭头函数和 'this'

这个问题在这里已经有了答案:ShouldIwritemethodsasarrowfunctionsinAngular'sclass(3个答案)ArrowvsclassicmethodinES6class(1个回答)关闭4年前。classAppextendsComponent{constructor(props){...}onChange=(e)=>this.setState({term:e.target.value})onSubmit(e){e.preventDefault();constapi_key="C1hha1quJAQZf2JUlK";consturl=`http://api

javascript - 使用箭头函数时,开发工具中未定义 `this`

我正在使用箭头函数,并且正在使用Chrome和Firefox开发工具进行调试。我得到的是,this未定义,即使代码仍然有效。例如:当在以下断点处暂停时,我在控制台中键入this,结果显示为undefined,即使console.log显示正确的this:classA{f=()=>{debugger;console.log(this);};}newA().f();我的假设是,它与源映射有关。以下是我用来构建我的代码的工具:webpack(开发工具:eval)babel-loader(es5预设)typescript加载器 最佳答案 问

javascript - this 在箭头函数中未定义

我试图在我的箭头函数中访问它:importmyObjectfrom'../myObjectPath';exportconstmyClass=Fluxxor.createStore({initialize(){this.list=[];this.id=null;},myOutsideFunction(variable1){//herethisinNOTundefinedmyObject.getMyList(this.id,(myList)=>{//herethisinundefinedthis.list=myList;}});)};但是在回调函数中的箭头函数中,this是未定义的!!我正

javascript - this 关键字不适用于箭头函数

这个问题在这里已经有了答案:Whatdoes"this"refertoinarrowfunctionsinES6?(10个答案)关闭3年前。我正在学习ES6,我只是想将我的ES5知识转换为ES6。这是我的ES5代码:functionclick(){this.className+='grab';setTimeout(()=>(this.className='remove'),0);};这是我的ES6代码:constclick=()=>{this.className+='grab';setTimeout(()=>(this.className='remove'),0);console.lo

javascript - 有没有办法在 JavaScript 中命名箭头函数?

我在应用程序中使用箭头函数,有时需要获取对函数本身的引用。对于普通的JavaScript函数,我可以直接命名它们并使用其中的名称。对于箭头函数,我目前正在使用arguments.callee。有没有一种方法可以命名箭头函数,以便可以从内部使用引用?示例代码//TypeScriptprivateevaluateIf(expr:parserModule.IIfExpression,callback:IEnvCallback){this.evaluate(expr.condition,proceed=>{guard(arguments.callee,arguments,this);if(pr

javascript - 如何在 Safari 中使用箭头函数运行 ES6 代码?

由于某些原因,在当前Chrome或Firefox中运行良好的ES6代码无法在Safari中运行-例如,arrowfunctions.据我所知,Safari对ES6有很好的支持。有什么需要做的吗?例子:vararr=[1,3,5].map((i)=>i*i);console.log(arr);或者如果它是一个完整的.html文件:"usestrict";vararr=[1,3,5].map((i)=>i*i);console.log(arr);Safari(我使用的是9.0.3)不断给出SyntaxError:Unexpectedtoken'>' 最佳答案

javascript - 在 TypeScript 中使用箭头函数 : how to make them class methods?

我的编程经验相当丰富,但对TypeScript还很陌生。尝试将它与jQuery一起使用并立即遇到回调的“this”问题(例如$(document).ready。使用$.proxy()是一种方法,但使用TypeScript的箭头(lambda)函数似乎要好得多。但我只看到它们用作表达式——也就是说,整个函数都是内联定义的。我希望能够设置可以作为我的类的方法调用的箭头函数,例如(伪代码):classSomething{constructor(){$('navli').click(this.menuClick);}privatemenuClick(andthiswouldbeanarrowf

javascript - ES6 类中的箭头与经典方法

有什么理由写ES6方法的经典语法吗?classMyClass{myMethod(){this.myVariable++;}}当我使用myMethod()作为某些事件的回调时,我必须写这样的东西(在JSX中)://Anonymousfunction.onClick={()=>{this.myMethod();}}//Orbindthis.onClick={this.myMethod.bind(this)}但是如果我将方法声明为箭头函数:classMyClass{myMethod=()=>{this.myVariable++;}}我只能写(在JSX中):onClick={this.myMe

javascript - .bind() 与箭头函数 () => 在 React 中的用法的区别

假设我有一个函数generateList()更新状态并将其映射到onClick到.Product有时我会遇到如下错误:Warning:setState(...):Cannotupdateduringanexistingstatetransition(suchaswithin呈现).Rendermethodsshouldbeapurefunctionofprops...诸如此类。我在网上寻找答案,发现了这样的answer喜欢:Product但我也看到了一个答案(在Github中,但似乎找不到)this.generateList('product')}>Product主要区别是什么?哪个更

javascript - 为什么我不能在 JavaScript/ES6 中使用带有箭头函数的 `new`?

据我所知,箭头函数类似于普通函数。我这样使用没有任何问题:letX=()=>{};letY=function(){};X();Y();但是,当我将它们与new一起使用时,出现了错误:letX=()=>{};letY=function(){};x=newX();y=newY();未捕获的类型错误:X不是构造函数这是为什么? 最佳答案 问。我做错了什么?A.您将new与箭头函数一起使用,这是不允许的。问。我可以将箭头函数转换为构造函数吗?A.仅将其包装在普通函数中,这很愚蠢。您不能将箭头函数本身变成构造函数。问。您能解释一下规范如何禁止