티스토리 뷰
this란
객체의 소속인 메소드의 this는 그 객체를 가르킨다.
var o ={
func : function(){
if(o===this){
document.write('o === this');
}
}
}
var funcThis = null;
function Func(){
funcThis = this;
}
var o1 = Func();
if(funcThis === window){
document.write('window <br />');
}
var o2 = new Func(); //생성자를 만들었을때 생성자 안에서 this가 됨 (new로 하였을때 o2가 this가 됨)
if(funcThis === o2){
document.write('o2 <br />');
}
생성자 안에서 this는 그 생성자가 만든 객체이다. 생성자가 실행되기 전까지는 객체는 변수에도 할당 될 수 없다.
function sum(x,y){return x+y;}//함수리터럴
var o ={}//객체리터럴
var a = [1,2,3] , new Array(1,2,3) //배열리터럴
객체-주인(master)
메소드-노예(slave)
함수의 메소드인 apply,call을 이용하면 this의값을 제어할 수 있다.
자바스크립트함수는 메소드가 객체에 강하게 종속되는 다른 객체 지향 언어와는 다르게,
일반적인객체에서의 메소드보다 위상이 높고,
그럼에도 함수를 어떻게 호출하느냐에 따라 함수는 어떤 객체에 각각 종속되기도 하며,
함수 자체로도 객체가 될 수 있다.
요약
1.this가 객체에 종속되어있지 않다면, 보통 window를 가르킨다.
2.생성자를 만들면 그 생성자가 this가 된다. 하지만 생성자가 실행되기 전까지는 undefined이다.
3.메소드인 apply,call로 this값을 제어할 수 있는데, 이는 this가 가르키는 객체와 메소드의 관계가 수평적이라는 것으로 볼 수 있다.(이것은 자바스크립트의 객체지향언어가 다른 객체지향언어에서의 메소드가 견고하게 종속된 것과는 다른 방식이다.)
'javascript' 카테고리의 다른 글
배열 내장함수 (0) | 2021.05.01 |
---|---|
[생활코딩]상속과 prototype (0) | 2021.04.28 |
[생활코딩]전역객체 (0) | 2021.04.25 |
[생활코딩]생성자와 new (0) | 2021.04.25 |
[생활코딩]객체 지향 프로그래밍 (0) | 2021.04.24 |
댓글
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- 중복숫자찾기
- 타입스크립트 프로그래밍
- debugger라도 해서 다풀어버리자
- .fill
- 게임은 더못만든다
- 무조건 비공개..
- login연장
- NextJS13
- 무조곤 비공개
- 틀리면 말씀해주세요
- 문자열실수변경
- react 공식문서
- 화살표함수에서 this의 바인딩
- 배열단순값 객체엔 속성값
- 한번에 받는건 id로 받기
- var과 let의 차이
- 프로토타입 체인
- httponly cookie
- refresh token
- 콜백함수에서의 this
- 지뢰찾기 게임도 못하는데
- 이 쉬운걸 4시간동안....
- 생성자함수에서의 this
- 메서드오버라이드
- if문 중첩없애기
- MDN 참조
- 객체의 참조값
- https://www.ncloud.com/support/notice/all/1424
- 복수는 한번에 안댐
- while문활용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함