Dato il seguente codice:funzioni Riapplicare JS Prototype dopo la deserializzazione
function Person(firstName, lastName) {
this.FirstName = firstName;
this.LastName = lastName;
}
Person.prototype.showFullName = function() {
return this.FirstName + " " + this.LastName;
};
var person = new Person("xx", "xxxx");
var jsonString = JSON.stringify(person);
var thePerson = JSON.parse(jsonString);
Il mio obiettivo sarebbe quello di essere in grado di chiamare "showFullName" su theperson. Mentre capisco che JS non ha realmente degli oggetti, deve avere un modo di essere in grado di dire che qualcosa dovrebbe essere trattato in un certo modo, come il casting di thePerson
in un Person
.
(È più un parse che un cast, come la vedo io) – gdoron
Javascript * ha * oggetti - è completamente orientato agli oggetti. Semplicemente non ha un sistema di battitura forzato, quindi puoi chiamare qualsiasi cosa su qualsiasi cosa e non sapere che hai un problema fino a tardi. Ma penso che gdoron abbia probabilmente ragione a non preservare i metodi. Hai scritto la tua stringa JSON per l'output? –
È possibile farlo se l'implementazione supporta la proprietà '__proto__' non standard. 'thePerson .__ proto__ = Person.prototype'. –