1.2.3.7.觀念小叮嚀:傳值和傳參考
//By value (primitive)
var a = 3;
var b;
//By value because a is a primitive
b = a;
a = 2;
//印出2
console.log(a);
//印出3
console.log(b);
//By reference (all objects, functions)
var c = {greeting: 'hi'};
var d;
d = c;
c.greeting = 'hello'; //mutate
//印出Object {greeting: "hello"}
console.log(c);
//印出Object {greeting: "hello"}
console.log(d);
function changeGreeting(obj){
obj.greeting = 'hola';
}
changeGreeting(d);
//印出Object {greeting: "hola"}
console.log(c);
//印出Object {greeting: "hola"}
console.log(d);
//equal operator sets up new memory space (new address)
c = {greeting: 'howdy'};
//印出Object {greeting: "howdy"}
console.log(c);
//印出Object {greeting: "hola"}
console.log(d);Last updated