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