JavaScript: Übergabe als Wert oder als Referenz? Wir räumen mit der Verwirrung auf
Hallo zusammen! Ich bin neu in JavaScript und verstehe nicht, wie die Übergabe von Argumenten an Funktionen tatsächlich funktioniert. In einigen Artikeln steht, dass JS alles als Wert übergibt, in anderen, dass Objekte als Referenz übergeben werden. Ich habe einen einfachen Code geschrieben, der mich endgültig verwirrt hat.
Hier ist ein Beispiel:
```javascript
function changeValue(x) {
x = 10;
console.log('Innerhalb der Funktion:', x);
}
let a = 5;
changeValue(a);
console.log('Nach der Funktion:', a); // 5 — alles klar, die Zahl hat sich nicht geändert
```
Das ist verständlich — primitive Datentypen werden als Wert übergeben. Aber wenn ich es mit einem Objekt versuche:
```javascript
function changeObject(obj) {
obj.name = 'Neuer Name';
}
let user = { name: 'Alter Name' };
changeObject(user);
console.log(user.name); // 'Neuer Name' — das Objekt hat sich geändert! Also doch als Referenz?
```
Aber noch mehr verwirrt mich dieses Beispiel:
```javascript
function replaceObject(obj) {
obj = { name: 'Ein ganz anderes Objekt' };
console.log('Innerhalb:', obj.name);
```
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen