티스토리 뷰
◎Call by value & Call by reference
●Path by Value (값에 의한 전달)
아래 예제에서 primitive type 변수 value를 인자로 넘기면 해당 값은 복사되어 매개변수로 전달된다.
즉, 복사된 값이 전달 된 것이므로 param의 값이 변경되어도 value에는 영향을 끼치지 않는다.
const value = 1;
function example( param ){
param = 0;
console.log(param); // 0
console.log(value); // 1
};
example( value );
●Path by Reference (참조에 의한 전달)
아래 예제에서 참조타입 변수 originObject를 인자로 넘기게 되면 해당 객체의 주소 값을 가진 참조가 복사되어 매개 변수로 전달된다.
즉, 동일한 참조를 가리키는 변수이기 때문에 매개변수 paramObject의 값을 변경하는 것은 originObject를 변경하는 것과 같다.
const originObject = { first : 'start', second : 'end' };
function example( paramObject ){
delete paramObject.second;
paramObject.first = 'not start';
console.log( paramObject ); // { first : 'not start' }
};
example( originObject );
console.log( originObject ); // { first : 'not start' }
'Front-End > JavaScript' 카테고리의 다른 글
[JavaScript] 클로저(Closure)란? (0) | 2019.09.08 |
---|---|
[JavaScript] 실행 문맥(Execution Context)이란? (0) | 2019.09.07 |
[JavaScript] 호이스팅(Hoisting)이란? (2) | 2019.09.07 |
[JavaScript] 스코프(Scope)란? (0) | 2019.09.05 |
Ajax(Asynchronous JavaScript and XML) (0) | 2018.06.17 |
- Total
- Today
- Yesterday
- JPA
- 프로그래머스
- Docker
- CI
- Jenkins
- Handshake
- typescript
- Kubernetes
- CRP 최적화
- PostgreSQL
- 실행 문맥
- 알고리즘
- graphql
- Spring Boot
- 프로그래머스[정렬]
- Nashorn
- Web
- 프로그래머스[Lv1]
- react
- 프로그래머스[이분탐색]
- 웹 사이트 최적화
- 프로그래머스[해시]
- 동적계획법
- CD
- Pipeline
- 프로그래머스[스택/큐]
- javascript
- execution context
- Apollo
- 프로그래머스[힙]
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |