es6 class:如何省略"这个"关键字

时间:2018-06-15 00:53:46

标签: javascript reactjs ecmascript-6 babeljs ecmascript-next

在ES6中,是否可以创建局部变量,直接引用它们而不是在前面添加 this.,例如this.name

示例,在下面的代码中,我该怎么做才能一直编写{name}而不是{this.name}。 (在变量前面添加this.有点麻烦!)

class User extend React.Component {
    name = "Joe";

    render() {
        // is it possible to write {name} instead of {this.name}
        return <div>{name}</div>
    }
}

1 个答案:

答案 0 :(得分:6)

这可以使用with语句,但由于它与严格模式不兼容,因此在现代JS中没有任何价值。

否则无法执行此操作,并且由于this.name不应与name变量混淆,因此省略this将是一个错误。

如果JSX中的this.name影响可读性或多次使用,则可以对属性进行解构:

render() {
    const { name } = this;

    return <div>{name}</div>
}