Questions tagged «arrow-functions»

关于ECMAScript2015(ES6)中称为“箭头函数”的紧凑型函数语法的问题,因为使用了“ =>”。

6
返回对象的ECMAScript 6箭头函数
当返回从箭头函数的对象,似乎有必要用一组额外的{}和return因为在语法歧义的关键字。 那意味着我不会写p => {foo: "bar"},但必须写p => { return {foo: "bar"}; }。 如果arrow函数返回的不是对象,则{}和return都是不必要的,例如:p => "foo"。 p => {foo: "bar"}返回undefined。 修饰符p => {"foo": "bar"}抛出“ SyntaxError::意外标记::'”。 有什么明显的我想念的东西吗?

3
“箭头功能”和“功能”是否等效/可互换?
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name = name; } // vs const User = name => { this.name = name; }; 原型方法 User.prototype.getName = function() { return this.name; }; // vs User.prototype.getName = () => this.name; 对象(文字)方法 const obj = { getName: function() { // ... } …



13
JavaScript中“ =>”(等于或大于的箭头)的含义是什么?
我知道>=运算符的含义是大于或等于,但是我已经=>在一些源代码中看到了。该运算符是什么意思? 这是代码: promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => { if (!aDialogAccepted) return; saveAsType = fpParams.saveAsType; file = fpParams.file; continueSave(); }).then(null, Components.utils.reportError);

9
什么时候应该在ECMAScript 6中使用Arrow函数?
这个问题针对的是那些在即将到来的ECMAScript 6(Harmony)中考虑过代码风格并且已经使用过该语言的人。 通过() => {}和,function () {}我们得到了两种非常相似的方法来在ES6中编写函数。在其他语言中,lambda函数通常通过匿名来区分自己,但是在ECMAScript中,任何函数都可以是匿名的。两种类型中的每一种都有唯一的使用域(即,当this需要显式绑定或显式不绑定时)。在这些域之间,有很多情况下两种表示法都会起作用。 ES6中的箭头功能至少有两个限制: 不要用工作new创建时,不能使用prototype 固定this绑定到初始化范围 除了这两个限制,箭头函数在理论上几乎可以替换任何地方的常规函数​​。在实践中使用它们的正确方法是什么?应该使用箭头功能,例如: “无论它们在哪里工作”,即在每个地方函数不必与this变量无关,我们也没有创建对象。 仅需要绑定到特定范围的“任何需要它们的地方”,即事件侦听器,超时 具有“短”功能但不具有“长”功能 仅对于不包含另一个箭头功能的功能 我正在寻找的是在将来的ECMAScript版本中选择适当的功能符号的指南。指南必须明确,以便可以向团队中的开发人员讲授,并且要保持一致,以便不需要从一个功能符号到另一个功能符号之间不断地来回重构。


8
如何在ES2015中编写命名箭头功能?
我有一个函数要转换为ES6中的新箭头语法。它是一个命名函数: function sayHello(name) { console.log(name + ' says hello'); } 有没有办法在不使用var语句的情况下为其命名: var sayHello = (name) => { console.log(name + ' says hello'); } 显然,我只能在定义此功能后使用它。如下所示: sayHello = (name) => { console.log(name + ' says hello'); } ES6中是否有新方法可以做到这一点?


4
ES6立即调用箭头功能
为什么这在Node.js控制台(在4.1.1和5.3.0中进行了测试)中不能运行,而在浏览器中(在Chrome中进行了测试)中却不起作用?该代码块应创建并调用一个记录日志的匿名函数Ok。 () => { console.log('Ok'); }() 此外,虽然上述作品中的节点,这并不工作: n => { console.log('Ok'); }() 也没有: (n) => { console.log('Ok'); }() 奇怪的是,当添加参数时,它实际上会SyntaxError在立即调用的部分抛出a 。


5
将jQuery $(this)与ES6箭头函数一起使用(词汇表this绑定)
将ES6箭头功能与词汇this绑定一起使用非常好。 但是,我刚才遇到一个问题,将它与典型的jQuery click绑定一起使用: class Game { foo() { self = this; this._pads.on('click', function() { if (self.go) { $(this).addClass('active'); } }); } } 改用箭头功能: class Game { foo() { this._pads.on('click', () => { if (this.go) { $(this).addClass('active'); } }); } } 然后$(this)转换为ES5(self = this)类型的关闭。 是否可以让Traceur忽略词法绑定的“ $(this)”?

5
在ES6 / Typescript中将_(下划线)变量与箭头函数一起使用
我在一个Angular示例中遇到了这个构造,我想知道为什么选择它: _ => console.log('Not using any parameters'); 我知道变量_表示不在乎/不使用,但是由于它是唯一的变量,因此没有任何理由更喜欢使用_: () => console.log('Not using any parameters'); 当然,键入的字符数不能少于一个。在我看来()语法更好地传达了意图,并且还更加具体地说明了类型,因为否则我认为第一个示例应该看起来像这样: (_: any) => console.log('Not using any parameters'); 万一重要,这是使用它的上下文: submit(query: string): void { this.router.navigate(['search'], { queryParams: { query: query } }) .then(_ => this.search()); }

6
为什么JSX道具不应该使用箭头功能或绑定?
我正在用我的React应用程序运行lint,并且收到此错误: error JSX props should not use arrow functions react/jsx-no-bind 这是我运行箭头功能(在里面onClick)的地方: {this.state.photos.map(tile => ( <span key={tile.img}> <Checkbox defaultChecked={tile.checked} onCheck={() => this.selectPicture(tile)} style={{position: 'absolute', zIndex: 99, padding: 5, backgroundColor: 'rgba(255, 255, 255, 0.72)'}} /> <GridTile title={tile.title} subtitle={<span>by <b>{tile.author}</b></span>} actionIcon={<IconButton onClick={() => this.handleDelete(tile)}><Delete color="white"/></IconButton>} > <img onClick={() => this.handleOpen(tile.img)} src={tile.img} style={{cursor: 'pointer'}}/> …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.