为什么这两个脚本的行为不同?我希望使用第一个脚本,但在第二个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)