728x90
모던 자바스크립트 Deep Dive를 참고하여 학습,작성하였습니다.
1.this
자바스크립트에서 함수는 arguments 객체와 this를 암묵적으로 받는다.
Java같은 언어에서 this는 객체 자기자신에대한 참조값이지만
JavaScript에서 this는 바인딩되는 객체가 함수 호출 방식에 따라 달라진다.
함수를 선언할때 결정되는것이 아니라 호출될때 결정된다.
2.함수호출 this
전역객체는 전역 스코프를 갖는 전역 변수를 프로퍼티로 소유한다.
이때 this는 전역객체에 바인딩된다.
이때 브라우저에서는 window, 터미널에서는 global 객체를 의미한다.
this === window // true
this === global // true
전역 함수, 내부함수, 메소드의 내부함수, 콜백함수 모두 외부 함수가 아닌 전역객체에 바인딩된다.
function fun() {document.write(this+"<br>")}
function fun2(){function fun3(){document.write(this+"<br>")} fun3()}
var obj={fun4:function(){function fun5(){document.write(this+"<br>")} fun5()}}
document.write(this+"<br>")
fun();
fun2();
obj.fun4();
3.메소드 호출 this
메소드일때 해당 메소드를 소유한 객체에 바인딩된다.
var obj={fun5:function(){document.write(this+"<br>")}}
obj.fun5()
🎈참고자료
728x90
'FrontEnd > JavaScript' 카테고리의 다른 글
[JavaScript] 클로저 (0) | 2024.06.06 |
---|---|
[JavaScript] strict mode (0) | 2024.06.04 |
[JavaScript] 스코프(Scope) (0) | 2024.06.04 |