为什么这个数组是通过引用而不是通过值传递的,我该如何更改它?

时间:2014-11-19 09:04:21

标签: javascript arrays pass-by-reference

我正在处理我编写的一些代码中的错误,而罪魁祸首竟然是这个代码段(为了问题而简化):

var a = [1, 2, 3, 5, 4];
// later...
function f(arr) {
    var sorted = arr.sort();
    // other stuff
}
// later...
console.log(a);
// logs [1, 2, 3, 4, 5]!

我的问题是,为什么a在函数完成后保持排序?当然在JS中,所有变量都是通过值传递而不是引用?

2 个答案:

答案 0 :(得分:0)

请查看此内容以获取完整说明

  

Is JavaScript a pass-by-reference or pass-by-value language?

答案 1 :(得分:-1)

Array是一个Object。在javascript中,所有对象都通过引用传递。