웹 개발/Javascript
[Javascript] 자바스크립트에서 매개변수(parameter) 할당
코딩하는흑구
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 |