diff --git "a/7\354\243\274\354\260\250 (20~22\354\236\245)/22. this/LSH0125/\352\270\260\354\226\265\354\227\220 \353\202\250\353\212\224 \353\202\264\354\232\251.md" "b/7\354\243\274\354\260\250 (20~22\354\236\245)/22. this/LSH0125/\352\270\260\354\226\265\354\227\220 \353\202\250\353\212\224 \353\202\264\354\232\251.md" new file mode 100644 index 0000000..7fbe54a --- /dev/null +++ "b/7\354\243\274\354\260\250 (20~22\354\236\245)/22. this/LSH0125/\352\270\260\354\226\265\354\227\220 \353\202\250\353\212\224 \353\202\264\354\232\251.md" @@ -0,0 +1,11 @@ +# ✏️ 기억에 남는 내용 + +- ***this*** + + 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수 -> 이를 통해 자신이 속하 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. + + this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. (함수를 호출하는 시점에 this 바인딩이 결정된다.) + +- **함수 호출 방식에 따른 this 바인딩** + + **일반 함수 호출** -> 기본적으론 전역 객체가 바인딩되고, strict mode 가 적용되었다면 undefined가 바인딩된다. + + **메서드 호출** -> 메서드를 호출한 객체가 바인딩된다. 메서드를 '소유'한 객체가 아닌, 메서드를 '호출'한 객체가 바인딩된다. + + **생성자 함수 호출** -> (미래에) 생성할 인스턴스가 바인딩된다. + + **Function.prototype의 메서드에 의한 간접 호출 (apply, call, bind)** -> 함수를 호출하면서 첫 번째 인수로 특정 객체를 전달하여 this에 바인딩한다.