se è un tipo primitivo viene sempre passato per valore. Diverso è il caso di oggetti. Vedi, per esempio, http://snook.ca/archives/javascript/javascript_pass/