javascript - 如何从 Ecmascript 6 (ES6) 上的类对象中的事件回调函数访问对象成员

标签 javascript ecmascript-6 ecmascript-harmony

我有这个:

class Register {

    render(){
        return (<div onchange={this.aFunction}></div>)
    };

    aFunction(event){
        this.printSomething();  //Uncaught TypeError: undefined is not a function
    }

    printSomething(){
        console.log('Horray');
    }

}

如何从 aFunction 中调用 printSomething? Es6 真的让我很困惑。

谢谢。

最佳答案

您会注意到,在 React 中使用 ES6 类时 a lot has changed .

此外,ES6 类不 autobind ES5 React.createClass 的方式。

因此,需要正确绑定(bind)函数的this

<小时/>

你有两个选择

1。使用箭头函数

render(){
    return <div onchange={event => this.aFunction(event)}></div>;
}

2。使用绑定(bind)

render(){
    return <div onchange={this.aFunction.bind(this)}></div>;
}
<小时/>

我假设您正在使用 React.js 来实现此目的。如果是,则需要更新

class Register

class Register extends React.Component

关于javascript - 如何从 Ecmascript 6 (ES6) 上的类对象中的事件回调函数访问对象成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170852/

相关文章:

javascript - 如何在 Javascript 的 foreach 循环中合并多个数组

javascript - React ES6 导入无状态组件

javascript - ReturnIfAbrupt 在 ES6 草案中是什么意思?

node.js - Node ——和谐0x​​104567911

javascript - AngularJS $http.post 到具有简单类型参数的 ASP.NET Web API Controller

javascript - Twitter Bootstrap 网站不会在 Android 浏览器中向下滚动

javascript - 如何在 Sails.js 中手动构造非自定义错误

javascript - 使用另一个对象的键从对象数组创建新数组

javascript - String.contains 是 JavaScript 中的标准函数吗?

JavaScript 闭包和变量作用域