Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

22. this #118

Merged
merged 2 commits into from
Mar 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions 7주차 (20~22장)/22. this/AHRAM/간단한 퀴즈.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 간단한 퀴즈

- this 바인딩은 함수 호출 방식에 관계없이 동적으로 결정된다. (O/X)
- this는 자바스크립트 엔진에 의해 암묵적 생성된다. (O/X)
- this는 전역에서 참조 가능하다. (O/X)
L2HYUNN marked this conversation as resolved.
Show resolved Hide resolved
Sun4-me marked this conversation as resolved.
Show resolved Hide resolved
LSH-0125 marked this conversation as resolved.
Show resolved Hide resolved
21 changes: 21 additions & 0 deletions 7주차 (20~22장)/22. this/AHRAM/기억에 남는 내용.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 22. this

- 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조
- 동작을 나타내는 메서드는 프로퍼티를 참조하고 변경할 수 있어야 함.
- 이를 위해서 먼저 **자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 함.**
- this
- 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수.
- this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있음.
- this는 자바스크립트 엔진에 의해 암묵적 생성, 전역에서 참조가능
- 함수 내부에서 arguments 객체를 지역 변수처럼 사용할 수 있는 것처럼 this도 지역 변수처럼 사용 가능.
- 단, **this가 가리키는 값, 즉 this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다.**
- 자바스크립트의 this는 함수가 호출되는 방식에 따라 this에 바인딩될 값, 즉, this 바인딩이 동적으로 결정된다.
- this 바인딩은 함수 호출 방식에 따라 동적으로 결정된다.
- 동일한 함수도 다양한 방식으로 호출 가능.
- 일반 함수 호출: 함수 내부의 this에는 전역 객체가 바인딩
- 일반 함수로 호출된 모든 함수 내부의 this에는 전역 객체가 바인딩
- 메서드 호출: 메서드를 호출할 때 메서드 이름 앞의 마침표(.) 연산자 앞에 기술한 객체가 바인딩
- 생성자 함수 호출: 생성자 함수 내부의 this에는 생성자 함수가 생성할 인스턴스가 바인딩
- Function.prototype.apply/call/bind 메서드에 의한 간접 호출: 메서드에 첫번째 인수로 전달한 객체가 바인딩
- apply와 call 메서드의 본질적인 기능은 함수를 호출하는 것
- apply와 call 메서드는 함수를 호출하면서 첫 번째 인수로 전달한 특정 객체를 호출한 함수의 this에 바인딩