이것은 자바스크립트에서 무엇입니까?
https://www.blog.duomly.com/what-is-this-keyword-in-javascript/
자바스크립트의 이 키워드는 초보자와 더 높은 개발자를 곤혹스럽게 하는 중요한 개념이다.그것은 매우 강하지만, 어떻게 일을 하는지 모르면 사용하기 쉽지 않다.
본고에서 나는 이 키워드가 무엇인지, 그리고 서로 다른 상황에서의 가치를 설명하고 코드 예시를 통해 이를 더욱 뚜렷하게 할 것이다.
이거 뭐야?
이 키워드가 무엇인지 더 잘 이해하기 위해서 자바스크립트 코드가 어떻게 작동하는지 먼저 설명해 봅시다.브라우저에서 자바스크립트를 실행할 때마다 엔진은 일련의 절차를 실행합니다. 그 중 하나는 실행 상하문을 만드는 것입니다.실행 컨텍스트는 Javascript 코드가 실행되는 환경으로 이해됩니다.모든 실행 상하문은 이 대상을 인용합니다. 이 대상은 보통 이 키워드 값을 인용합니다.다시 말하면, 우리는 이 키워드가 호출 함수의 대상에 대한 인용이라고 말할 수 있다.이 키워드의 값은 사용 위치에 달려 있다.
이것은 단독으로 사용하는 것이다
이것은 대상이나 함수의 상하문이 아닌 단독으로 사용될 경우 전역 범위를 인용합니다.브라우저의 경우 글로벌 객체 이름은 창입니다.간단한 코드 예를 살펴보겠습니다.
<script>
var fruit = "apple";
function getFruit() {
   var fruit = "banana";
   console.log("fruit", fruit); // „banana”
   console.log("this.fruit", this.fruit); // „apple”
}
returnFruit();
</script>
이 점에서 우리는 그것을 일컫는다.과일은'사과'로 돌아가지만 국부적인 변수 과일은'바나나'로 돌아간다.
이것은 창의 대상입니다.과일은 전 세계 과일의 속성을 가리킨다.
특히 엄격한 모드를 사용한 경우 전역적으로 정의되지 않았다.
이것은 한 가지 방법과 함께 사용하는 것이다
구조 함수에서 새로운 대상을 만드는 경우,this 키워드는 이 대상의 새로운 실례를 가리킨다.
다음 예를 살펴보겠습니다.
var firstName = "Peter";
var lastName = "Strong";
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.returnName = function() {
    return this.firstName + ' ' + this.lastName;
  };
}
let newPerson = new Person("Kate", "Smith");
console.log(newPerson.returnName()); // "Kate Smith"
함수에서 사용
함수에서 사용하는 이 키워드는 좀 까다로울 수 있습니다.Javascript의 함수가 객체라는 것을 기억하는 것이 좋습니다.그것은 자신의 속성을 가지고 있는데, 그 중 하나는thisvalue이며, 그 값은 그것을 호출하는 방식에 달려 있다.만약 함수가 어떤 대상에 호출된다면, 이 값은 대상이다.그렇지 않으면 이 속성의 함수는 전역 대상 창입니다.코드 예시를 보여 주세요.
var catName = "Garfield";
var catColor = "orange";
function getCat() {
  return this.catName + ' is ' + this.catColor;
}
var cat = {
  catName = "Jerry",
  catColor = "gray",
  getCat: function() {
    return this.catName + ' is ' + this.catColor;
  }
}
위문하다.로그('Cat in object scope', Cat.getCat();//"제리는 회색이에요".
만약 우리가 코드를 분석한다면, 우리는 두 개의 함수를 볼 수 있는데, 그 중 하나는 전역 작용역 함수이고, 다른 하나는cat 대상 방법이다.전역 역할 영역 함수 getCat () 를 호출할 때, 함수의 이 키가 전역 대상을 인용하기 때문에 전역 역할 영역 변수를 사용합니다.cat object의 getCat () 방법에서는 cat object 속성을 가리키는데, 이것이 바로 우리가 유사한 함수에서 두 가지 다른 결과를 얻는 이유이다.
이것은 활동에서 사용
이벤트에 대해, 어떤 이벤트를 터치한 후에, 우리는 이벤트 처리 프로그램을 호출합니다.이 처리 프로그램들은 일부 코드를 호출하는 함수이다.이벤트 프로세서에서 이 키워드를 사용할 때, 이것은 함수를 시작하는 HTML 요소를 가리킨다.DOM 모델은 개체 트리이므로 페이지의 각 HTML 요소는 개체로 저장됩니다.몇 가지 예제 코드를 살펴보겠습니다.
<button onclick="this.style.backgroundColor='blue'">Click here!</button>
call(), apply(), bind()
자바스크립트에는 콜 (), apply (),bind () 를 설정하는 데 도움을 줄 수 있는 세 가지 방법이 있습니다.
때때로 우리는 대상에서 방법을 빌려서 오류가 발생할 다른 상하문에 사용하기를 원한다.코드를 살펴보겠습니다.
var boy = {
  greeting = 'Hello',
  sayHi: function() {
    return this.greeting;
  }
}
var spanishBoy = {
  greeting: 'Hola'
} 
boy.sayHi(); // "Hello";
전화()
call () 방법은 이 키워드에 새로운 값을 할당할 수 있도록 합니다.우리는 여러 개의 매개 변수를call () 방법에 전달할 수 있다.첫 번째 파라미터는 new this의 값입니다. 다음에 우리는 함수 파라미터를 전달할 수 있습니다.따라서 새로운this와 전달 매개 변수를 가진 함수를 호출합니다.코드를 살펴보겠습니다.
var boy = {
  greeting = 'Hello',
  sayHi: function() {
    return this.greeting;
  }
}
var spanishBoy = {
  greeting: 'Hola'
} 
boy.sayHi(); // "Hello";
boy.sayHi.call(spanishBoy); // "Hola";
적용()
다음 방법 apply () 를 보여 줍니다.이 방법은call()과 매우 비슷합니다. 이 값을 변경하고 사용한 후에 함수를 바로 호출할 수 있지만, 그것들 사이에는 작은 차이가 있습니다.call () 방법에 매개 변수를 전달할 때, 이것은 이렇게 보입니다:call (newThis,arg1,arg2,arg3).각 매개변수를 개별적으로 전달하는 대신 apply() 함수를 사용하는 경우 다음과 같이 배열로 전달할 수 있습니다.
apply(newThis, [arg1, arg2, arg3]).바인딩()
bind () 방법은 콜 () 과 apply () 와 약간 다르다.bind () 는 이 함수를 즉시 호출하지 않고 새 함수를 만들고 되돌려주며,this 값을 지정합니다.코드 예시를 봅시다.
var boy = {
  greeting = 'Hello',
  sayHi: function() {
    return this.greeting;
  }
}
var spanishBoy = {
  greeting: 'Hola'
} 
boy.sayHi(); // "Hello";
const sayHola = boy.sayHi.bind(spanishBoy);
sayHola(); // "Hola";
비동기 코드를 처리하거나 함수에 매개 변수만 전달하려고 할 때bind () 방법을 사용하면 매우 유용할 수 있습니다.
결론
본문에서, 나는 자바스크립트에서 이 키워드의 정의와 용법을 소개했다.서로 다른 장면에서 어떤 값을 기대할 수 있는지 설명하고 세 가지 중요한 방법:call(), apply()와bind()를 설명했습니다.
이 키워드를 이해하는 것이 그것을 정확하게 사용하고 코드의 대량 오류를 피하는 데 얼마나 중요한지 감안하여, 나는 당신이 본문이 매우 유용하다는 것을 발견할 수 있기를 바랍니다.또한 자바스크립트의 기초 지식을 이해하는 것이 더 높은 개념을 파악하는 데 도움이 된다는 것을 기억하는 것이 좋다.
읽어주셔서 감사합니다.
둠리에서 온 안나
 
                Reference
이 문제에 관하여(이것은 자바스크립트에서 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/duomly/what-is-this-in-javascript-46pk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)