Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 제일어려워
- underscores
- 해커톤
- nqueens
- 일상
- 엔퀸즈
- 리액트
- 코드스테이츠
- ftech
- 클라이언트
- DOM
- 코딩
- method
- underbar
- 공부
- this
- 초보
- array
- react
- 포스기
- Instantiation Patterns
- grpahQL
- 알고리즘
- 개발
- 연습
- JavaScript
- JS
- 자바스크립트
- vscode
- 취업
Archives
- Today
- Total
analogcoding
Execution context 와 This 본문
Execution Context
(실행 컨텍스트)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있다.
어떤 함수가 호출되면 execution context가 만들어진다.
정의 : 실행컨텍스트는 추상적인 개념 . 실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경
- 변수 : 전역변수, 지역변수, 매개변수, 객체의 프로퍼티
- 함수 선언
- 변수의 유효범위(Scope)
- this
this
자바스크립트에서 함수가 호출될 때, 함수 호출 방식에 따라 this 에 바인딩되는 객체가 달라진다.
정의 : 모든 함수 scope 내에서 자동으로 설정되는 특수한 식별자.
execution context의 구성요소 중 하나로 , 함수가 실행되는 동안 이용할 수 있다.
Binding Pattern | Binding Target |
Global 에서 this | window |
Function 에서 this | window |
Method 에서 this | 부모 object |
Construction mode 에서 this | (new연산자) 새로 생성된 객체 |
Call & Apply 에서 this | 첫 번째 인자로 명시된 객체 |
예제.
1. Global 에서 this
2. Function 에서 this
var global = 'this에게 호출될 예정'
console.log(this.global) // this에게 호출될 예정
function foo() {
console.log(this.global);
}
foo(); //this에게 호출된 예정
3. Method 에서 this
var count = function(){
val : 0,
increase : function() {
this.val += 1; //여기서 this는 부모객체인 count함수와 연결.
}
}
count.increase();
console.log(count.val) // 1
4. Construction mode 에서 this
function Foo(n) {
this.val = n;
}
var foo = new Foo('생성자함수');
//기존 함수에 new라는 연산자를 붙이면 생성자 함수가 만들어짐 기존함수와 혼란 방지를 위해 대문자로 쓰임
console.log(foo.val) // 생성자함수
var fee = Foo('실패'); //new 연산자가 없으면 생성자 함수로 동작하지 않음
console.log(fee.val)//undefined
5. Call & Apply 에서 this
fun.call(thisArg[, arg1[, arg2[, ...]]])
//thisArg :fun 호출에 제공되는 this의 값
//arg : 객체를 위한 인수
function foo() {
return this.length
}
foo.call([1,2,3]) // 3
fun.apply(thisArg, [argsArray])
//thisArg : 옵션. func 를 호출하는데 제공될 this 의 값
// [argsArray] : 옵션. func 이 호출되어야 하는 인수를 지정하는 유사 배열 객체,
function foo() {
return this.length
}
foo.apply([1,2,3]) // 3
fun.apply(thisArg, [1,2,3])
fun.call(thisArg, 1,2,3)
'Study JS for me > Keyword' 카테고리의 다른 글
Template literals (0) | 2019.05.11 |
---|---|
ES6 : let , const (0) | 2019.05.10 |
call & apply & bind (0) | 2019.04.27 |
Closure (0) | 2019.04.23 |
Scope [global , local] / Hoisting (0) | 2019.04.23 |
Comments