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

Why is this array being passed by reference and not by value, and how can I change this?

本文关键字:何改变 改变 按值传递 数组 引用 为什么      更新时间:2023-09-26

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

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中,所有变量都是按值而不是引用传递的吗?

查看此内容以获取完整描述

JavaScript 是按引用传递还是按值传递语言?

数组是一个对象。在javascript中,所有对象都是通过引用传递的。