Übergabeparameter in Funktionen

N3WM4N

Mitglied
Guten Tag,
ich wollte mal folgendes nachfragen. Wie genau läuft das bei folgendem Script ab.
Unten wird die Funktion test mit Übergabeparameter b aufgerufen.
Kann man sich die Übergabe dann wie folgt vorstellen?

function test(parameter=b)
{
parameter="Moin"
.
.
.
.}

B verändert sich dabei außerhalb der Funktion nicht und wenn b ein Array/Object wäre, dann würde das ebenfalls den Wert von parameter annehmenoder?

[CODE lang="java" title="Beispiel"]<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<title>Internes JS</title>

<script type="text/javascript">//<![CDATA[
"use strict"
var a,b="Moin";
function test(parameter)
{
b="ist egal";
parameter=parameter+" ! Wie gehts?";
return parameter;
}
a=test(b);
alert(b)
//]]></script>
</head>

<body>

</body>
</html>[/CODE]
 

N3WM4N

Mitglied
und angenommen ich rufe einfach eine Funktion wie folgt auf und packe da ein paar Literale rein testfun(10, 30)
Was kann man dann damit machen. Die sind ja nicht als Variablen deklariert. Wie kann man dann damit arbeiten
 

Jw456

Top Contributor
JavaScript hat die primitiven Datentypen Numerm, String, Boolean
Primitive Datentypen werden als Kopie an Funktionen übergeben.
In der Funktion wird mit der Kopie der Variablen gearbeitet.


Bei Objekten wird die Referenz der Objekte übergeben. Also ein Zeiger auf den Speicherplatz im Ram.
Arrays sind Objekte.
 

mihe7

Top Contributor
und angenommen ich rufe einfach eine Funktion wie folgt auf und packe da ein paar Literale rein testfun(10, 30)
Was kann man dann damit machen. Die sind ja nicht als Variablen deklariert. Wie kann man dann damit arbeiten
In JavaScript sind Funktionsparameter syntaktischer Zucker, der einem das Leben vereinfacht. Tatsächlich kannst Du eine Funktion mit beliebigen, auch nicht deklarierten, Parametern aufrufen. Zugreifen kannst Du via arguments:
Javascript:
function hello() {
    if (arguments[0] === undefined) {
        window.alert("Was darfs sein, Fremder?");
    } else {
        window.alert("Was willst Du, " + arguments[0] + "?");
    }
}
Wenn Du jetzt hello() aufrufst, wird der Fremde gefragt, bei hello("Hans") dagegen der Hans. Das arguments-Objekt besitzt auch die Eigenschaft length, mit der sich die Zahl der übergebenen Argumente ermitteln lässt. Ich hätte oben also auch prüfen können, ob arguments.length === 0 gilt.

Gibst Du der Funktion nun einen Parameter, z. B. name, kannst Du sowohl via name als auch über arguments[0] auf das übergebene Argument zugreifen.
 

Oben