[Javascript] 자바스크립트에서 매개변수(parameter) 할당

자바스크립트에서 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



댓글

Designed by JB FACTORY