React初心者です。
下記のコードに置いて、なぜthisをbindする必要があるのかわかりません。
その理由として二つ目のjsコードではメソッド内でthisをコンソールに出力した時、ちゃんとクラスを参照しています。
今回についてもメソッド内でthisを参照した場合、bindが必要なくても出力されるものではないのでしょうか?
今の僕のthisの理解としては
1, 関数内でのthisは関数そのものをさす
2, メソッド内のthisはクラス(インスタンス)をさす
3, 関数内でもメソッド内でもない場合はグローバル変数をさす
ご教授よろしくお願いします。orz
class Parent extends React.Component { constructor(props) { super(props); this.state = { value1: 'foo', value2: [ 'bar', 'baz' ], }; this.handleClick = this.handleClick.bind(this); } handleClick() { //bindをつけていないとundefinedになる console.log(this); } render() { return ( <div onClick={this.handleClick}> <Child data={this.state.value1} /> </div> ); } }
class A { constructor() { this.name = 'a'; console.log(this) } test() { console.log(this); } } a = new A(); a.test()
回答3件
あなたの回答
tips
プレビュー