Warum verhalten sich die beiden Skripte unterschiedlich? Ich möchte das erste Skript verwenden, aber beim zweiten drawData()
Aufruf ändert es data
; das ist seltsam und entspricht nicht meinen Vorstellungen. Das zweite Skript hat dieses Problem nicht. Warum ist das so und wie kann ich das erste Skript beheben?
Das erste Skript ändert data
nicht:
var data = ["right"];
function drawData(arrs, type) {
if (type == "percentage") {
arrs[0] = "omg";
}
console.log(data[0]); // Geändert!?
}
drawData(data);
drawData(data, "percentage");
Zweites Skript:
var data = "right";
function drawData(arrs, type) {
if (type == "percentage") {
arrs = "omg";
}
console.log(data); // OK, nicht geändert.
}
drawData(data);
drawData(data, "percentage");