Tag: ecmascript 6

ECMAScript6箭头函数返回一个对象

当从箭头函数返回一个对象时,由于语法中的含糊不清,似乎有必要使用额外的一组{}和一个return语句: p => { return { foo: 'bar' } } 如果箭头函数返回其他内容,那么{}和return是不必要的,例如: p => 'foo' 有什么明显的我失踪?

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

我是新使用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对象。

用let或const声明variables是不是在ES6中悬挂的?

我一直在玩ES6一段时间,我注意到,虽然用var声明的variables是如预期的那样悬挂着… console.log(typeof name); // undefined var name = "John"; …使用let或const声明的variables在提升时似乎有一些问题: console.log(typeof name); // ReferenceError let name = "John"; 和 console.log(typeof name); // ReferenceError const name = "John"; 这是否意味着使用let或const声明的variables不会被挂起? 这里究竟发生了什么? let和const在这个问题上有什么区别吗?

ES6对象中的方法:使用箭头函数

在ES6中,这两个都是合法的: var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; 并简写为: var chopper = { owner: 'Zed', getOwner() { return this.owner; } } 是否也可以使用新的箭头function? 在尝试类似的东西 var chopper = { owner: 'John', getOwner: => { return this.owner; } }; 要么 var chopper = { owner: 'John', getOwner: => (this.owner) }; 我收到一条错误消息,提示该方法没有访问权限。 这只是一个语法问题,或者你不能在ES6对象内使用fat-pipe方法吗?

分配左侧的Javascript对象括号表示({导航} =)

我以前没有看过这个语法,所以想知道这是什么意思。 左边的方括号出现语法错误:“unexpected token {” var { Navigation } = require('react-router'); 我不确定webpackconfiguration的哪个部分正在转换,或者语法的目的是什么。 这是和谐的事情吗? 有人可以启发我吗?

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

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

无法访问事件处理程序中的React实例(this)

我在ES6(用BabelJS)写一个简单的组件,并且函数this.setState不起作用。 典型的错误包括像 无法读取未定义的属性“setState” 要么 this.setState不是一个函数 你知道为什么吗? 这里是代码: import React from 'react' class SomeClass extends React.Component { constructor(props) { super(props) this.state = {inputContent: 'startValue'} } sendContent(e) { console.log('sending input content '+React.findDOMNode(React.refs.someref).value) } changeContent(e) { this.setState({inputContent: e.target.value}) } render() { return ( <div> <h4>The input form is here:</h4> Title: <input type="text" ref="someref" value={this.inputContent} onChange={this.changeContent} /> <button onClick={this.sendContent}>Submit</button> […]

使用“let”和“var”声明一个variables有什么区别?

ECMAScript 6引入了let语句 。 我听说它被描述为一个“本地”variables,但我还不太确定它的行为与var关键字不同。 有什么区别? 什么时候应该let var ?

在JavaScript中,“=>”(等于和大于等于一个箭头)的含义是什么?

我知道>=运算符意味着大于或等于,但是我在某些源代码中看到了=> 。 那个操作员的意思是什么? 代码如下: promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => { if (!aDialogAccepted) return; saveAsType = fpParams.saveAsType; file = fpParams.file; continueSave(); }).then(null, Components.utils.reportError); }

箭头函数与函数声明/expression式:它们是等价的还是可交换的?

规范性问题如果在用箭头函数replace函数声明/expression式后发现有关问题的问题,请将其作为该函数的副本closures。 ES2015中的箭头function提供更简洁的语法。 我现在可以用箭头函数replace我所有的函数声明/expression式吗? 我需要注意什么? 例子: 构造函数 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() { // … } }; // vs const […]