按值傳遞是指兩變量間賦值時,或者將變量做爲參數傳遞給函數的參數變量時,其實只是將原變量的值賦值一個副本給對方。函數
原始類型中,修改新變量,不會影響原變量的值;以下:內存
var a=10,b=20;console
var x=a;y=b;變量
x--;引用
y--;co
console.log(x); //9參數傳遞
console.log(y); //19引用傳遞
console.log(a); //10參數
console.log(b); //20
注:JS中,全部函數的參數都是按值傳遞的。
按引用傳遞,傳遞的參數是按引用進行傳遞,其實傳遞的引用地址,也就是變量所對應的內存空間的地址;以下:
var a=[1,2,3];
var b=a;
console.log(b[0]); //1
b[0]++;
console.log(a[0]); //2
以上代碼中,將a賦值給b,實際上是將變量在內存中保存的地址賦值給了b,兩個變量共用一個地址,所以當b發生變化時,a也一樣會受到影響。