var adun = {
age : 24
};
console.log(adun); // -> Object {age: 24}
function dc (value) {
value = {
'sibal' : '자바스크립트는 복사된 값만 받는다고'
};
}
dc(adun);
console.log(adun); // -> Object {age: 24}
자바스크립트에서 콜바이레퍼런스는 오해일 뿐이다.참조형태의 전달따위는 없다.
age : 24
};
console.log(adun); // -> Object {age: 24}
function dc (value) {
value = {
'sibal' : '자바스크립트는 복사된 값만 받는다고'
};
}
dc(adun);
console.log(adun); // -> Object {age: 24}
자바스크립트에서 콜바이레퍼런스는 오해일 뿐이다.참조형태의 전달따위는 없다.
오로지 값으로만 전달이되고 값은 지역변수에 복사될 뿐이다.
객체를 건들수있는건 그 복사된 값이 주소를 물고있기때문에 ㅇㅇ
참조형태로 전달됬으면 마지막에 콘솔창에서 {sibal: ~ 로 떳어야제}
좆까고 있네. 니가 생각한 건, a = {a: 1}; b = a; a = {a: 2}; 하면 b.a도 2가 되어야 한다는 급의 개소리고. 나는 b = a; 상태에서 a.a를 수정하면 b.a도 수정된다는 걸 말한 거다.
ㅋㅋㅋ 사실 나도 자세히는몰름 걍 어그로끌려고 했는데 잘끌었네
포경입니다!
Call by value면 value.age를 고치면 adun.age는 가만히 있어야 하는데 둘 다 바뀌잖아 ㅂㅅ아.
ㄴ 아니시발 내말은 값이 복사되었는데 그값이 객체를 가리키기때문에 참조할수있다는거다. 대신 값을 새로할당하면 복사된거기때문에 원래있던 adun 프로퍼티는 안바뀌는거고 ㅇㅋ? 나한테 머라하지마 니콜라스 자카스한테 가서 따져라
옛다 니콜라스 자카스 트위터 @slicknet
똑같이 참조를 넘겨주는 상황이더라도 니가 함수를 호출할 때 객체의 참조를 값으로써 직접 넘기는 걸 구현했다면 call by value, 그냥 객체를 넘겼더니 객체가 복사되어 넘어간게 아니라 알아서 참조를 넘겨준거면 call by reference. ㅇㅋ?
예컨대 C 포인터는 Call by value고 C++ 레퍼런스는 Call by reference.
그러니까 이렇게 된다는 거지?
http://jsfiddle.net/x7b2exx5/
그냥 레퍼런스는 신텍스슈가에 불과하고.. 객체를 파라미터로 넘기려면 언젠가는 스칼라로 바꿔야하니까 이런식으로 따지면 패스바이레퍼런스는 없죠 cpp건 자바건..