我不这么认为.如果我是你,我会在Person类上创建一个函数来从JSON对象初始化.
function Person() { this.loadFromJSON = function(json) { this.FirstName = json.FirstName; }; }
如果您事先不知道JSON对象所代表的是什么类,可能会在JSON中添加一个额外的变量.
{ _className : "Person", FirstName : "Mike" }
然后有一个"构建器"功能来解释它.
function buildFromJSON(json) { var myObj = new json["_className"](); myObj.loadFromJSON(json); return myObj; }
更新:既然你说这个类是你无法改变的第三方库的一部分,你可以用原型扩展类,或者编写一个只在外部填充类的函数.
例如:
Person.prototype.loadFromJSON = function(json) { // as above... };
要么
function populateObject(obj, json) { for (var i in json) { // you might want to put in a check here to test // that obj actually has an attribute named i obj[i] = json[i]; } }