Ich versuche ein neues Objekt zu erstellen, indem ich ein bereits erstelltes Objekt verwende. Das ist, was ich zu erreichen versuchen:JavaScript-Konstruktor - Verwenden Sie ein Objekt?
var obj = {"Name" : "Patrick", "Age": 25, "Country": "US"};
document.writeln(JSON.stringify(obj) + "<br />");
function Person(name, age, country) {
this.name = name;
this.age = age;
this.country = country;
}
document.writeln(JSON.stringify(new Person(obj)));
https://jsfiddle.net/dotjz9tb/
Wie Sie sehen können, Ich versuche, eine neue Person zu erstellen namens Patrick im Alter von 25, die in den USA leben geschieht. Mein Person
Konstruktor verwendet einen Namen, ein Alter und ein Land als Parameter. Allerdings wurde mein Objekt bereits aus einer vorherigen Funktion erstellt, also würde ich gerne new Person(obj)
machen und es würde ein neues Objekt basierend auf den Parametern obj
erstellen.
Ich weiß, ich kann new Person(obj.name, obj.age, obj.country)
tun, aber ich würde lieber den Konstruktor ein Objekt statt, während immer noch new Person("Jack", 52, "UK")
tun können.
Ist so etwas möglich? Im Moment ist dies, wie es wirklich erstellt werden:
new Person(obj, undefined, undefined);
//or
{
"name": {
"Name":" Patrick","
Age":25,
"Country":"US"
}
}
Was bedeutet, dass age
und country
wird nichts eingestellt, während name
auf mein Objekt festgelegt ist.
rufen Wenn Konstruktor 'Funktion Person (obj) { this.name = obj.Name; this.age = obj.Age; this.country = obj.Land; } ' – Rayon
@Rayon Dann müsste ich einen neuen Konstruktor erstellen, der auch ein Objekt nimmt, oder? – MortenMoulder
Oder Bedingungen drin ... Etwas wie 'arguments.length'? – Rayon