사실 react를 쓸뿐이지 아마 js 기본문법 관련일꺼임
일단 4번줄에 React 대문자로 안쓴거 오타임
궁금한 부분은 7번줄 8번줄 그리고 this가 가리키는것들
사실 constructor이랑 super가 잘 이해가안되서 이것저것 찾아봤는데도 아직 좀 어리둥절해서
내가 생각한게 맞는지 확인좀해줘
7번줄은 클래스 호출할때 값넣어주면 그걸 클래스 내부에있는 constructor의 매개변수에 선언?된 변수(저기에선 props)에 넣어주고
super(props)는 props에 담긴 값을 저 클래스의 부모클래스(react.component)의 생성자메소드(constructor)로 넘겨줌
짤에선 클래스호출은 없었지만 저게 맞는걸까
그리고 20번째 줄 render()내부와
constructor 내부와
updateHeader메소드 내부의 this에서 각각 어디를 가리키는지가 궁금해
메소드 내부에선 상위객체를 가리킨다고 했으니 class인 StateExample를 가리키는게 맞아?
먼말인지 잘 모르겠고 컨스트럭터는 상속받은 대상을 의미함 - dc App
컨스트럭터는 생성자 함수고 super가 상속하는 대상의 생성자 함수 호출하는거고 this는 이 stateExample를 바탕으로 생성되는 객체의 this를 가르킴 근데 자바스크립트는 메소드에서 사용하는 this가 사용하는 객체에 따라서 변하기 때문에 this.updateheader에서 bind this로 메소드의 객체를 묶어줌
즉 저기서 나오는 onClick을 제외한 모든 this는 stateExample로 생성한 객체를 가르키지만 onClick에서 가르키는 this.updateHeader에서 this는 stateExample이지만 updateHeader내부의 this는 window객체가 되버림
좀더 쉽게 설명하자면 메소드를 사용한 시점과 사용한 객체에 따라서 this가 가르키는 대상이 변함
오.... 고마어 궁금하던거 싹해결됨 ㅠ