Node.js中的變數,屬於call by value的範圍(我猜是原生型別的關係)
下面是範例:
var b = a;
console.log(a + '::' + b);
> 1::1
b = b + 1;
console.log(a + '::' + b);
> 1::2
上面的b值改變時候,不影響a值,因此a與b無reference關係...
而物件的話,看起來屬於call by reference...
var a = {aa: 111};
var b = a;
console.log(a);
console.log(b);
console.log('===========');
b.aa = 222;
console.log(a);
console.log(b);
>{ aa: 111 }
>{ aa: 111 }
>============
>{ aa: 222 } //這是a
>{ aa: 222 } //這是b
上面的b物件改變aa的值時候,實際上影響到a物件的aa值,屬於call by reference
因此在操作時候需要特別小心...
一個不小心....!@#!$!@#