2) 메서드로 호출
3) 생성자로 호출
4) apply, call 로 호출
호출 예 |
this |
function trip() {}; trip(); var tour = function(){}; tour(); |
window (전역 context) |
2) 메서드로 호출
호출 예 |
this |
var city = { trip : function () { return this;} } city.trip(); var city = {}; city.trip = function() {return this;} city.trip(); |
메서드를 소유하고 있는 객체 |
3) 생성자로 호출
- 작동방식은 메서드로 호출과 동일. 그러나 반복해서 객체에 메서드 property를 만들고, 메서드 property 에 함수를 지정하는 것을 피하게 만든다.
- 생성자 함수 앞에 new 로 시작함
- 빈 객체 생성 -> 생성자 함수 내 this 에 생성된 객체 설정 -> 객체의 property 설정 -> (명시적 return이 없다면,) 객체 return
- 생성자 함수는 대문자로 시작, 명사
호출 예 |
this |
function City() { this.tour = function() {return this;} } var city1 = new City(); var city2 = new City(); |
새롭게 생성된 객체 인스턴스 |
방식 |
parameter |
apply |
객체, 인자 배열 |
call |
객체, 인자 목록 |
예시1)
예시2 - event handler 의 this를 event 를 호출한 객체가 아닌 event handler 를 가지고 있는 객체로 설정)
'Programming Practice > Javascript' 카테고리의 다른 글
closure (0) | 2016.12.27 |
---|---|
prototype (0) | 2016.09.04 |
delegation (0) | 2016.07.31 |
javascript convention (0) | 2016.07.31 |
Function (0) | 2016.07.30 |