[Javascript] 자바스크립트에서 매개변수(parameter) 할당
- 웹 개발/Javascript
- 2019. 6. 16. 13:22
자바스크립트에서 function에 인자(Parameter)를 넘기는 방식
- 원시타입 : boolean, number, string, null, undefined
- 객체타입 : 객체, 배열 등등
1. 원시타입을 파라미터로 넘겼을 경우에는 전달받은 인자(function에 정의된 변수)는 다른 주소값을 가지고 복사된다.
2. 객체타입을 파라미터로 넘겼을 경우에는 전달받은 인자(function에 정의된 변수)는 같은 주소값을 가지고 복사된다.
2-1 ) 받은 인자에 새로운 객체를 할당할 경우 다른 주소값을 가지게 되어서 함수 호출시 넘기는 파라미터객체와 다른 주소값을 가지게된다. => 재할당
2-2 ) 받은 인자에 속성값을 변경하면 전달받은 인자의 주소값은 변하지 않아서 함수 호출시 넘기는 파라미터객체의 값을 변경할 수 있다.
예제로 보기
예제 1. 원시타입을 인자로 넘길 경우.
1 2 3 4 5 6 7 8 | function example(prameter){ console.log(parameter);// 1 parameter = 10; console.log(parameter);// 1 } var p = 1; example(p); console.log(p); // 1 | cs |
예제 2. 객체타입을 인자로 넘길 경우( 받은 객체타입 인자에 새로운 객체를 할당할 경우 )
1 2 3 4 5 6 7 8 9 10 | function example(obj){ //{p1 : 1, p2: 2} console.log(obj); obj = {p1:100,p2:200}; console.log(obj); // {p1 : 100, p2: 200} } var o = { p1 : 1 , p2 : 2} example(o); console.log(o); // { p1: 1, p2: 2} | cs |
예제 3. 객체타입을 인자로 넘길 경우 ( 받은 객체타입 인자에 속성(프로퍼티)만 변경할 경우 )
1 2 3 4 5 6 7 8 9 10 | function example(obj){ //{p1 : 1, p2: 2} console.log(obj); obj.p1=100; console.log(obj); // {p1 : 100, p2: 2} } var o = { p1 : 1 , p2 : 2} example(o); console.log(o); // { p1: 100, p2: 2} | cs |
'웹 개발 > Javascript' 카테고리의 다른 글
[Javascript] 자바스크립트 생성자 함수(Object.prototype.constructor) (0) | 2020.03.04 |
---|---|
[Javascript] 자바스크립트 즉시실행 함수(IIFE) (0) | 2020.03.03 |
[Javascript] 자바스크립트 스코프와 호이스팅 (0) | 2019.05.28 |
[Javascript] 자바스크립트, DOM 태그 검색 방식( id, class, name, 태그명) (0) | 2019.04.18 |
[Javascript] 자바스크립트, location, history 객체 (1) | 2019.04.15 |