In javascript arrays are objects. So, in a nutshell, yes, you will be passing a reference.
arr1 = new Array();
arr2 = new Array();
arr1 = arr2;
arr1.push('test');
alert(arr2[0]);//test
if you want to pass it by value, you should make a clone function like:
function cloneValue(value){
if (typeof value != 'object')
return value;
else {
var newObj = {};
for (var prop in value){
newObj[prop] = value[prop];
}
return newObj;
}
}
function cloneArray(array){
var newArray = [];
for(var i = 0; i < array.length; i++){
newArray[i] = cloneValue(array[i]);
}
return newArray;
}
var arr2 = cloneArray(arr1);
this still has a perk, if the values in the array are not primitive, they are going to be passed by reference again...
I edited the code...