1. this 키워드
- this 키워드는 해당 키워드가 사용된 자바스크립트 코드 영역을 포함하고 있는 객체를 가리킨다.
- 메소드 내부에서 사용된 this 키워드는 해당 메소드를 포함하고 있는 객체를 가리킨다.
- 객체 내부에서 사용된 this 키워드는 객체 그 자신을 가리킨다.
- this는 변수가 아닌 키워드이므로, 사용자가 임의로 가리키는 값을 바꿀 수 없다.
1-1 this를 단독으로 실행
var a = this;
console.log(this); //window
- 실행 결과 window가 나온다.
1-2 함수 안에 넣고 실행
function a(){
console.log(this); //window
}
a();
- 실행 결과 window가 나온다.
1-3 객체의 메소드 안에 넣고 실행
var result = {
a: function() {console.log(this);}
}
result.a();
- 객체의 메소드 a 안에 있는 this는 객체를 가리킨다.
- 메소드를 호출할 때 this를 내부적으로 바꿔준다.
1-4 전역 변수 선언하여 호출
var a2 = result.a;
var result = {
a: function() {console.log(this);}
}
a2();
- 호출하는 함수가 객체의 메서드인지, 그냥 함수인지 중요하다. a2는 result 함수에서 꺼내왔기 때문에 result의 메소드가 아니다.
2. 객체의 프로퍼티 삭제
delete 객체이름.프로퍼티이름;
- 자바스크립트에서 delete 키워드를 사용하여 객체의 프로퍼티를 삭제할 수 있다.
- delete 키워드를 사용하여 삭제하는 경우, 프로퍼티 자체가 삭제된다.
- 이 키워드는 본래 객체의 프로퍼티만을 삭제하기 위해 만들어졌으므로, 함수나 변수에 사용하면 아무런 동작도 하지 않는다.
2-1 delete 예시
function a(nickname, age, size){
this.nickname = nickname;
this.age = age;
this.size = size;
}
var a2 = new a("pterosaurs", 10, "100cm");
delete a2.size;
console.log(`nickname: ${a2.nickname} / age: ${a2.age} / size: ${a2.size}`);
- 실행 결과 size값만 undefined 값으로 출력된다.
'FrontEnd > Javascript' 카테고리의 다른 글
[Javascript] DOM, Document (0) | 2021.08.16 |
---|---|
[Javascript] var, let, const (0) | 2021.08.13 |
[Javascript] 함수(function) (0) | 2021.08.07 |
[Javascript] 배열(array) (0) | 2021.08.06 |
[Javascript] 객체 (0) | 2021.08.04 |