javascript - ES6 类 : how to omit "this" keyword

标签 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>
    }
}

最佳答案

这可以通过 with 语句实现,但由于它与严格模式不兼容,因此在现代 JS 中没有任何值(value)。

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

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

render() {
    const { name } = this;

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

关于javascript - ES6 类 : how to omit "this" keyword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50867834/

相关文章:

javascript - 使用 JavaScript ES6 模块导入现有库

javascript - es6展开运算符不组合键控对象

javascript - 替换 Dojo/Dijit NLS 字符串

javascript - jQuery Mobile 页面之外的持久性 HTML

javascript - 测试rootReducer中是否已经导入了所有reducer

javascript - 在渲染任何组件后有一个 useEffect 钩子(Hook)

javascript - Date.parse() 在 IE 和 FireFox 中不起作用

javascript - 适用于 JavaScript 的 Google IMA SDK 重叠式广告和全幅广告引用

javascript - bizcharts y 轴标签覆盖

ecmascript-6 - 导入的 ESLint 规则错误