小编Tom*_*Tom的帖子

在JavaScript函数中更改数组会更改函数外的数组吗?

为什么这两个脚本的行为不同?我希望使用第一个脚本,但在第二个drawData()调用中它会改变data; 这很奇怪而不是我想要发生的事情.第二个脚本没有这个问题.为什么会这样,我如何修复第一个脚本?

第一个脚本不会改变data:

var data = ["right"];

function drawData(arrs, type) {
    if (type == "percentage") {
        arrs[0] = "omg";
    }
    alert(data[0]); // Changed!?
}
drawData(data);
drawData(data, "percentage");
Run Code Online (Sandbox Code Playgroud)

第二个脚本:

var data = "right";

function drawData(arrs, type) {
    if (type == "percentage") {
        arrs = "omg";
    }
    alert(data); // OK, not changed.
}
drawData(data);
drawData(data, "percentage");
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

5
推荐指数
1
解决办法
7418
查看次数

标签 统计

arrays ×1

javascript ×1

object ×1