다시 천천히 생각해봤는데
<button>Button</button>
<script>
obj = { Write() { console.log(this) } }
obj.Write()
document.getElementsByTagName("button")[0].onclick=obj.Write
</script>
obj.Write()에서 obj객체가 출력되고
버튼클릭에서 버튼태그가 출력되는데
강의 내용중에 4번째 this, 이벤트 리스너에 해당하는것같네요...
강의와 달리 객체의 멤버함수를 넘겨서 다른 내용이라고 착각했었는데 결국
document.getElementsByTagName("button")[0].onclick=function(){console.log(this)}와 완전히 동일한 작동이었나보네요
질문에서 undefined 뜨는 이유는 리액트 jsx라서 태그 호출이 제대로 안되는걸로 이해했습니다.