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

Javascript 如何从Ecmascript 6(ES6)上的类对象中的事件回调函数访问对象成员,javascript,ecmascript-6,ecmascript-harmony,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(){

我有这个:

class Register {

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

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

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

}
类寄存器{
render(){
返回()
};
A功能(事件){
this.printSomething();//未捕获类型错误:未定义不是函数
}
打印某物{
console.log('Horray');
}
}
如何从函数中调用printSomething?Es6真让我困惑


谢谢。

我认为问题在于
渲染上的
这个
绑定在div上

var foo = new Register;
var div = foo.render();
div.onchange(); // this is div, not foo
foo.aFunction(); // doesn't throw TypeError.

我认为问题在于
上的
这个
绑定在div上

var foo = new Register;
var div = foo.render();
div.onchange(); // this is div, not foo
foo.aFunction(); // doesn't throw TypeError.

您会注意到,在使用带有React的ES6类时

另外,ES6类不像ES5
那样反应。createClass
会这样

因此,您需要正确绑定函数的
this


你有两个选择

1.使用箭头函数 到


您会注意到,在使用带有React的ES6类时

另外,ES6类不像ES5
那样反应。createClass
会这样

因此,您需要正确绑定函数的
this


你有两个选择

1.使用箭头函数 到


尝试:
return()
。虽然我不熟悉这个大括号语法,但它很有效,谢谢!尝试:
return()
。虽然我不熟悉这个大括号语法,但它很有效,谢谢!我是,谢谢你的回答,别担心我的类比这个复杂得多,我只是简化了它,忘了在这里添加扩展。我是,谢谢你的回答,别担心我的类比这个复杂得多,我只是简化了它,忘了在这里添加扩展。
render(){
    return <div onchange={this.aFunction.bind(this)}></div>;
}
class Register
class Register extends React.Component