Alterar matriz na função JavaScript altera a matriz fora da função?
Por que os dois scripts se comportam de maneira diferente? Eu quero o para usar o primeiro script, mas no segundodrawData()
chame de mudançasdata
; É estranho e não o que eu quero que aconteça. O segundo script não tem esse problema. Por que é assim e como posso consertar o primeiro script?
Primeiro script não mudadata
:
var data = ["right"];
function drawData(arrs, type) {
if (type == "percentage") {
arrs[0] = "omg";
}
alert(data[0]); // Changed!?
}
drawData(data);
drawData(data, "percentage");
Segundo script:
var data = "right";
function drawData(arrs, type) {
if (type == "percentage") {
arrs = "omg";
}
alert(data); // OK, not changed.
}
drawData(data);
drawData(data, "percentage");