(JS) 그

저게 뭐에요?

자신을 가리키는 참조 변수
이는 JavaScript 엔진에 의해 암시적으로 생성되며 코드의 어디에서나 참조할 수 있습니다.
객체의 메서드 또는 생성자 함수 내에서만 의미가 있습니다.


JS를 호출하는 방법

  1. (일반) 함수 호출
  2. 메서드 호출
  3. 생성자 함수 호출(객체 생성 함수)
  4. 적용 / 호출 / 바인드 호출

1. 함수 호출

const test = function(){
  console.log(this);
}

test(); // window

일반 함수는 가장 간단하게 호출할 수 있습니다.

이 경우 this는 전역 개체를 가리킵니다.

2. 메서드 호출

var person = {
  name: 'Sung',
  printName: function() {
    console.log(this.name);
  }
}

person.printName() // Sung

방법: 객체의 값이 함수로 구성되는 경우

메소드 호출 this : 메소드를 소유한 객체에 제본 하다.
바인딩: 식별자와 값을 연결하고 이것이 가리키는 개체를 바인딩하는 프로세스입니다.

2-1 메소드에 내부 함수가 선언되어 있다면 무엇인가요?

var person = {
  name: 'Sung',
  printName: function() {
    function getName() {
    	return this.name;
  }
  console.log("hello " + getName());
}
}
person.printName() // hello undefined 출력

내부 함수에서 this = that object인 객체 메서드와 대조됩니다. = 창 물체를 가리킨다

내부 함수는 메서드가 아니므로 단순 함수 호출 규칙에 따라 창을 가리킵니다.

3. 생성자 함수 호출

const instance = new test(); // instance

생성자 기능: 객체 생성을 담당
생성자 함수의 동작 과정은 세 가지로 요약할 수 있다.
1. 빈 객체 생성 및 바인딩 => 생성자 함수가 실행되기 전에 빈 객체가 생성되어 바인딩됩니다.
2. 그것을 통해 속성을 생성
3. 생성된 객체 반환

생성자 함수에서 this의 역할 = 객체 속성에 함수 인수로 전달된 값을 할당하려면 this 키워드를 사용하십시오.

4. 적용/호출/바인딩 콜

이것은 적용, 호출 및 바인드 메소드를 통해 특정 오브젝트에 명시적으로 바인드될 수 있습니다.

적용하다, 호출하다: 함수를 호출하다 => 일반적으로 배열과 같은 객체에 배열 메서드를 사용할 때 사용됩니다.
bind : 이것으로 사용할 객체만 전달 => 메소드의 this와 메소드 내부의 중첩 함수 또는 콜백 함수의 this가 일치하지 않는 문제를 해결하기 위해 사용