清空传递给函数的数组

时间:2019-10-05 05:47:32

标签: javascript

我正在尝试清空传递给javascript中函数的数组:

var a = [1,2,3];

function emptyArrayNo(ar) {
    // the following does not empty the global array
    ar = [];
}

function emptyArrayYes(ar) {
    // any of the following 3 methods empties the global array
    ar.length = 0;
    //ar.splice(0, ar.length)
    //while(ar.length > 0) {ar.pop();} 
}

emptyArrayNo(a);
console.log(a); // returns [1,2,3]

emptyArrayYes(a); 
console.log(a); // returns []

emptyArrayYes()中的所有三个方法似乎都能正常工作,我认为这是由于对传递的数组的引用未在函数中进行修改。但是,当我们在函数内将数组设置为[]时,我相信引用会发生更改,从而导致出现问题,即在全局范围内看不到。有人可以澄清一下这是怎么回事吗?谢谢。

0 个答案:

没有答案