给出以下代码:

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);

我的目标是能够在thePerson上调用“showFullName”。虽然我知道JS确实没有对象,但是它必须具有某种方式可以说应该以某种方式对待某些事物,例如将thePerson转换为Person

最佳答案

据我所知,最好的方法是先构造一个 Vanilla 对象,然后使用类似jQuery的extend这样的数据将数据放到该对象上。

var thePerson = new Person(); // and make sure the constructor gracefully handles no arguments
jQuery.extend(thePerson, JSON.parse(stringData));

如下所述,如果您只是在创建浅拷贝,则无需使用extend。您可以循环浏览已解析数据的属性,然后将它们复制到目标对象上。

09-25 21:27