Tag: ecmascript next

与Babel.js的Transpileasynchronous等待提议?

有一个build议,介绍C#风格async-await 。 我知道Babel.js将ES6转换为ES5,但有什么办法可以使ES5变得asynchronous等待吗?

在符号(@)在ES6的JavaScript做什么? (ECMAScript 2015)

我正在查看一些ES6代码,我不明白@符号放在variables前面的作用。 我能find的最接近的东西与私人领域有什么关系? 我正在从redux库中查看代码: import React, { Component } from 'react'; import { bindActionCreators } from 'redux'; import { connect } from 'redux/react'; import Counter from '../components/Counter'; import * as CounterActions from '../actions/CounterActions'; @connect(state => ({ counter: state.counter })) export default class CounterApp extends Component { render() { const { counter, dispatch } = this.props; return […]

JavaScript双冒号(绑定运算符)

如你所知,有一个提议.bind()函数的快捷方式,所以你可以写: ::this.handleStuff 它将在es5中像这样工作: this.handleStuff.bind(this) 我的问题是:是否有可能通过这样的论据? 我的意思是用上面提到的捷径写这个的方法: this.handleStuff.bind(this, 'stuff') 这在React中是一个很常见的模式,所以稍微缩短它会很好。

如何使用箭头函数(公共类字段)作为类方法?

我是新使用React的ES6类,以前我一直在绑定我的方法到当前对象(在第一个例子中显示),但是ES6允许我永久地将一个类的函数绑定到带有箭头的类实例吗? (作为callback函数传递时很有用。)当我尝试像使用CoffeeScript一样使用它们时,出现错误: class SomeClass extends React.Component { // Instead of this constructor(){ this.handleInputChange = this.handleInputChange.bind(this) } // Can I somehow do this? Am i just getting the syntax wrong? handleInputChange (val) => { console.log('selectionMade: ', val); } 所以,如果我要传递SomeClass.handleInputChange ,例如setTimeout ,它的作用域是类实例,而不是window对象。

单线程从ES 6中的对象获取一些属性

如何编写一个function,在ES6中以最紧凑的方式只使用less量属性? 我已经想出解决scheme使用解构+简化的对象字面量,但我不喜欢在代码中重复的字段列表。 有更简单的解决scheme吗? (v) => { let { id, title } = v; return { id, title }; }