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...