2016-11-28 6 views
1

Ich bin wirklich neu sooo zum JavaScript ...Wie erhält man den Namen des Konstruktors des neuen Objekts in der Funktion? (Javascript)

Ich habe eine Klasse:

var warrior = function(HP) { 
    this.health = HP; 
} 

Und wenn ich einen neuen Krieger:

var somebody = new warrior(50); 

I‘ Ich möchte dem neuen Element den Namen "jemand" geben. Wie kann ich es tun?

+1

Sie müssten es in passieren, 'var jemand = new Krieger (50, 'jemand');' und die Klasse ändern 'var Krieger = Funktion (hp, name) {this.health = hp; this.name = Name; }; ' – david

+0

Ich habe eine Einschränkung, dass der Anruf wie aussehen sollte, wie ich schrieb, aber die Aufgabe verwendet den Anrufernamen in einer späteren Funktion ... zum Beispiel var battle = neuer Kampf (eins, zwei); battle.getWinner(); // sollte "eins" zurückgeben – R2DToo

+0

Sie könnten etwas wie, warrior.prototype.name; dann geh jemand.name = "jemand"; – Heinrich

Antwort

0

Sie können nicht. Variablennamen sind für die Programmfunktionalität bedeutungslos. Wenn Ihnen der Name wichtig ist, verwenden Sie eine Zeichenfolge und übergeben Sie sie als Argument.

0

So etwas wie dies vielleicht:

var warrior = function(HP) { 
 
    this.health = HP; 
 
} 
 

 
warrior.prototype.name; 
 

 
var somebody = new warrior(50); 
 

 
somebody.name = 'somebody'; 
 

 
console.log(somebody);

+0

Danke, aber es muss mit jedem Namen funktionieren, den ich dem neuen Element gebe .. – R2DToo

+0

Sorry, ich verstehe die Frage nicht ganz, sprichst du davon, dass du das Objekt mit einem anderen Namen referenzieren kannst? Oder sprichst du von jedem Krieger, der den Namen jemand trägt? – Heinrich

+0

Ich kann einen Krieger mit einem beliebigen Namen erstellen und ich möchte den Namen in einer anderen Funktion verwenden. – R2DToo

Verwandte Themen