JavaScript 1.1 JScript 2.0 Function erstellen  nach oben

Neben der normalen Variante eine Funktion durch einfaches notieren dieser zu erstellen, besteht zusätzlich auch die Möglichkeit, eine Funktion während der Laufzeit völlig neu zu erstellen. Dies geschieht mit Hilfe des new-Operators.
Einer Variablen wird der Operator sowie der Aufruf new Function() (unbedingt mit großem F schreiben) übergeben. Eventuelle Parameter, die die Funktion erhalten soll, werden dann als Parameter übergeben. Als letzten Übergabewert wird der auszuführende Code als String notiert. Die erstellte Funktion kann dann über die beschriebene Variable aufgerufen werden. Beispiel:

a = '{'+
    'var_a += var_b;'+
    'var_b = var_a*var_b;'+
    'return(var_b);'+
    '}';
b = new Function('var_a','var_b', a );
// Funktion b( var_a , var_b ) erstellt

c = b(1,2); // = 6

Unterobjekte  nach oben

Das Objekt besitzt die folgenden Unterobjekte:

Eigenschaften  nach oben

JavaScript 1.2 arity

Die arity-Eigenschaft ist eine veraltete Eigenschaft zum ausfragen der Parameteranzahl einer Funktion. Ab JavaScript 1.4 wird sie als deprecated (abgelehnt / mißbilligt) angesehen und ist nur noch wegen Abwärtskompatibilität in JavaScript enthalten. Stattdessen kann die Eigenschaft length zum Ermitteln der Parameteranzahl verwendet werden.
Notation: Objekt.arity

function a(x,y){ return(x+y); }
if(a.arity == 2){ a(1,2); }
else{ a(); }

JScript 2.0 caller

Die caller-Eigenschaft gibt an, von wo aus eine Funktion aufgerufen wurde. Kam der Aufruf von einer Funktion, wird diese angegeben - ansonsten wird null zurückgegeben.
Notation: Objekt.caller

function a() { return(a.caller); }
function b() { return(a()); }
x = a(); // = null
y = b(); // = 'function b() { return(a()); }'

JavaScript 1.1 JScript 2.0 constructor

Die constructor-Eigenschaft gibt die Funktion an, die das Objekt erstellt hat (also Function()).
Notation: Objekt.constructor

a = new Function('x','y','return(x+y)');
b = a.constructor; // = 'function Function(){ [native code] }'

JavaScript 1.1 JScript 2.0 length

Die length-Eigenschaft gibt die Anzahl der Parameter einer Funktion an.
Notation: Objekt.length

function a(x,y){ return(x+y); }
if(a.length == 2){ a(1,2); }
else{ a(); }

JavaScript 1.1 JScript 2.0 prototype

Die prototype-Eigenschaft gibt eine Referenz auf die eigentliche Objektklasse wieder.
Notation: Objekt.prototype

Function.prototype.VariableX = 13;
function a(x,y)
{
 b = a.VariableX; // = 13
}
a(2,3);

Methoden  nach oben

JavaScript 1.3 JScript 5.5 apply

Die apply-Methode wendet eine Funktion auf ein Objekt an. So lassen sich die Eigenschaften eines Objekts auf ein anderes übertragen. Als Parameter kann dazu optional das Objekt übergeben werden, auf welches die Funktion angewendet werden soll (ansonsten wird das globale Objekt verwendet werden). Als zweiten Parameter kann optional ein Array mit Parametern oder ein arguments-Objekt übergeben werden.
Notation: Objekt1.apply([ Objekt2 [, Argumente]])

function a(x,y)
{
 this.val1 = x;
 b.apply(this,[y]);
 //wendet Funktion b auf das Objekt an
 //und übergibt x als Parameter
}

function b(y)
{
 this.val2 = y;
}
c = new a(1,2)
d = c.val1; // = 1
e = c.val2; // = 2

JavaScript 1.3 JScript 5.5 call

Die call-Methode startet eine Funktion (Funktionsaufruf). JavaScript verlangt dazu als Parameter das Objekt, mit dem die Funktion ausgeführt werden soll (ähnlich der apply-Methode) - für JScript ist dies optional. Beide Sprachen erlauben zusätzlich die Übergabe ein oder mehrerer Parameter die als Übergabewerte für die aufzurufende Funktion gelten sollen.
Notation: Objekt1.call([Objekt2 [,Argument1 [, ... ArgumentN ]]])

function a(b,c){ return(b+c); }
d = a.call(this,1,2); // = 3

JavaScript 1.3 toSource

Die toSource-Methode gibt einen String wieder, der den Source-Code (Grundcode) des Objekts repräsentiert.
Notation: Objekt.toSource()

a = new Function('x','y','return(x+y)');
b = a.toSource() // = 'function anonymous(x, y){ ... }'

JavaScript 1.1 JScript 2.0 toString

Die toString-Methode wandelt das Objekt in einen String um.
Notation: Objekt.toString()

a = new Function('x','y','return(x+y)');
b = a.toString() // = 'function anonymous(x, y) { ... }'

JavaScript 1.1 JScript 2.0 valueOf

Die valueOf-Methode gibt den Wert des Objekts wieder. Dies entspricht allgemein der toString-Methode.
Notation: Objekt.valueOf()

a = new Function('x','y','return(x+y)');
b = a.valueOf() // = 'function anonymous(x, y) { ... }'