golangbot
golangbot
发布于 3个月前

关于Javascript中数组作为函数参数的问题?

let arr = [1,2,3,4,5]

function A(_arr){
    _arr[1] = 0
}

A(arr)

console.log(arr) // 1 0 3 4 5

function B(_arr){
    _arr = null
}

B(arr)

console.log(arr) // 1 0 3 4 5

为什么经过函数B,arr没有变成null, 从函数A来看明明传递的是引用啊

最佳答案

传递的是引用,不过是把引用保存到_arr变量上,你再把此变量赋值为其他的东西,对原有的没有任何影响