Zmiana tablicy w funkcji JavaScript zmienia tablicę poza funkcją?
Dlaczego te dwa skrypty zachowują się inaczej? Chcę, aby użyć pierwszego skryptu, ale w drugimdrawData()
nazwij to zmianamidata
; to dziwne, a nie to, co chcę zrobić. Drugi skrypt nie ma tego problemu. Dlaczego tak jest i jak mogę naprawić pierwszy skrypt?
Pierwszy skrypt się nie zmieniadata
:
var data = ["right"];
function drawData(arrs, type) {
if (type == "percentage") {
arrs[0] = "omg";
}
alert(data[0]); // Changed!?
}
drawData(data);
drawData(data, "percentage");
Drugi skrypt:
var data = "right";
function drawData(arrs, type) {
if (type == "percentage") {
arrs = "omg";
}
alert(data); // OK, not changed.
}
drawData(data);
drawData(data, "percentage");