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