1
00:00:00,570 --> 00:00:03,970
이제 키워드를 다시 믹스에 포함시킬 때 어떤 일이 일어나는지 봅시다.

2
00:00:04,170 --> 00:00:06,980
첫 번째 코드 블록에서 재미있는 부분이 있습니다.

3
00:00:07,020 --> 00:00:17,740
우리는 Say hi라는 메서드를 가지고 있습니다.이 메서드는 설정 타임 아웃을 호출하고 키워드의 first name 속성 값과 연결된 높은 문자열을 기록합니다.

4
00:00:17,820 --> 00:00:21,100
이 코드가 반환하는 것을보기 전에

5
00:00:21,150 --> 00:00:24,740
동영상을 일시 중지하고 이것이 의미하는 핵심 단어가 무엇인지 생각해보십시오.

6
00:00:24,780 --> 00:00:28,550
처음 두 규칙으로 돌아가서 글로벌 컨텍스트에서 핵심 단어입니다.

7
00:00:28,710 --> 00:00:32,280
또는 선언 된 객체의 핵심 단어입니다.

8
00:00:32,280 --> 00:00:36,480
선언 된 객체의 내부에 분명히 있다고 생각할 수 있으며 올바른 것입니다.

9
00:00:36,750 --> 00:00:44,310
그러나 set timeout은 나중 시점에 호출되기 때문에 this 키워드는 부모 객체를 참조하지 않습니다.

10
00:00:44,310 --> 00:00:47,100
실제로 전역 개체를 참조합니다.

11
00:00:47,100 --> 00:00:50,060
이것은 매우 까다 롭고 많은 초보자를 여행합니다.

12
00:00:50,160 --> 00:00:55,470
이제 설정 시간 초과가 나중에 호출되기 때문에 다시 살펴 보겠습니다.

13
00:00:55,590 --> 00:01:13,960
그것이 붙어있는 객체는 실제로 우리가 전에 말했던 것처럼 윈도우입니다. 설정된 타임 아웃은 함수가 실행되는 컨텍스트가 실제로 선언 된 경우 차가운 객체 내부에서 정의 되더라도 윈도우 객체의 메소드입니다 문맥.

14
00:01:13,980 --> 00:01:18,000
그렇다면 우리는 핵심 단어의 올바른 맥락을 잃어 가고 있기 때문에 어떻게이 문제를 풀 수 있을까요.

15
00:01:18,010 --> 00:01:22,220
이것은 우리가 명시 적으로 설정해야하지만 우리는 이것을 가리키는 핵심 단어를 원합니다.

16
00:01:22,590 --> 00:01:30,510
호출과 적용을 사용하여이 작업을 수행 할 수 있지만 나중에 해당 함수를 호출하고 싶기 때문에이 중 하나를 사용하지 않으려합니다.

17
00:01:30,570 --> 00:01:33,600
호출 및 적용이 함수를 즉시 호출한다는 것을 기억하십시오.

18
00:01:33,660 --> 00:01:39,620
이렇게하면 나중에 특정 시점에 함수를 실행하기위한 시간 제한 설정의 목적을 무효화 할 수 있습니다.

19
00:01:39,960 --> 00:01:47,700
따라서 두 번째 코드 블록에서 bind를 사용하면 bind 메소드의 첫 번째 매개 변수로 전달하여 문제를 해결할 수 있습니다.

20
00:01:47,700 --> 00:01:56,010
this 키워드를 참조하는 것이 바람직한 값은 this 키워드를 첫 번째 매개 변수로 전달하는 이유와 완전히 혼동 될 수 있습니다.

21
00:01:56,160 --> 00:02:02,420
그러나 한 걸음 뒤로 물러서서 코드 객체 안에서이 키워드가 무엇을 참조하는지 물어보십시오.

22
00:02:02,850 --> 00:02:06,140
실제로 컬트 객체 자체를 참조합니다.

23
00:02:06,240 --> 00:02:20,160
따라서 우리는 키워드의 올바른 값을 바인딩 타임 아웃의 함수가 호출 될 때 원하는 값으로 바인딩합니다. 키워드 대신 바인드 메소드에 호출 된 변수에 전달할 수 있으며 동일한 결과를 얻을 수 있습니다.

24
00:02:20,400 --> 00:02:24,790
그러나 더 일반적으로 키워드 this를 사용하는 코드가 표시됩니다.

25
00:02:24,900 --> 00:02:41,060
우리가 bind 메소드가 apply를 호출하는 것과는 다르게 함수 정의를 반환한다는 것을 보았고, 함수에 전달할 인수의 값을 모두 알지 못하거나 키워드와 함께 작업 할 때 키워드의 값을 설정하는 데 매우 유용합니다. 비동기 코드.

26
00:02:41,070 --> 00:02:42,300
하나의 마지막 메모.

27
00:02:42,390 --> 00:02:44,960
우리가 다루고있는 자료는 상당히 발전했습니다.

28
00:02:45,150 --> 00:02:54,920
그러나 프로페셔널 자바 스크립트 개발자가되기를 원한다면 프로덕션 코드 기반에서 볼 수있는 코드 종류 일뿐 아니라 여전히이 예제로 상당히 복잡해지면 인터뷰에서 질문을 받게됩니다.

29
00:02:54,930 --> 00:02:55,710
걱정마.

30
00:02:55,830 --> 00:03:05,580
나는이 주제를 많이 가르쳤다. 그리고 항상 처음에는 사람들을 혼란스럽게 만들면서 각 코드 행을 살펴보고 크롬 콘솔에 예제를 입력하여 진행 상황을 확인한다.

31
00:03:05,760 --> 00:03:07,950
언제나 그 질문을 자유롭게 들으실 수 있습니다.

32
00:03:07,950 --> 00:03:10,600
우리는 당신이 다음 비디오에서 배우는 것을 돕기 위해 왔습니다.
