Ändern des Arrays in der JavaScript-Funktion ändert das Array außerhalb der Funktion?

Warum verhalten sich die beiden Skripte unterschiedlich? Ich möchte das erste Skript verwenden, aber im zweitendrawData() Nennen wir es Änderungendata; Es ist komisch und nicht das, was ich will. Das zweite Skript hat dieses Problem nicht. Warum ist es so und wie kann ich das erste Skript reparieren?

Erstes Skript ändert sich nichtdata:

var data = ["right"];

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

Zweites Drehbuch:

var data = "right";

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage