2012-04-12 12 views
2

Possible Duplicate:
Use of .apply() with 'new' operator. Is this possible?neue Klasseninstanz und Argumente als Array

ich brauche die Anwendung ein neues insance einer Klasse erstellen (new SomeClass()), aber die Argumente, ich brauche zu passieren ist ein Array. Ich weiß, ich kann Funktionen mit apply() aufrufen und übergeben Sie das Array von Argumenten als zweites Argument an apply, aber wie kann ich dies beim Erstellen einer neuen Instanz tun?

+0

@JamesMontagne Ich kann dieses Beispiel nicht zum Arbeiten bekommen. Ich erhalte diesen Fehler: TypeError: Function.prototype.apply: Die Argumentliste hat den falschen Typ – LordZardeck

+0

@LordZardeck: Können Sie uns den Code zeigen, den Sie versuchen. Sind Sie sicher, dass Sie ein Array übergeben? –

Antwort

0
function ​myClass​() 
{ 
    if(this instanceof arguments.callee) 
    { 
     init.apply(this, arguments); 
    } 
    function init() 
    { 
     this.args=arguments; 
     console.log(arguments); 
    } 
} 

var myArray=[1,2,3]; 
var obj=new myClass(myArray); 
console.log(obj.args); 

Example here. Hoffnung habe ich verstanden, was Sie brauchen, und dieses kann Ihnen helfen.

+0

Ich habe nicht die Kontrolle über den Konstruktor. – LordZardeck

+0

Sie haben die Klasse/Funktion nicht definiert? –

+0

habe ich nicht. Es ist externer Code – LordZardeck

Verwandte Themen