Tôi biết cách sử dụng JSON để tạo các đối tượng, nhưng dường như không có cách nào để sử dụng JSON để tạo một đối tượng thuộc loại đối tượng cụ thể.Làm cách nào để sử dụng JSON để tạo đối tượng Thừa kế từ Loại đối tượng?
Dưới đây là một ví dụ về một đối tượng và tạo ra một thể hiện của nó:
Person = function() { };
Person.prototype = {
FirstName: null,
GetFirstName: function() {
return this.FirstName;
}
};
//Create an instance of the Person Object
var me = new Person();
me.FirstName = "Chris";
alert(me.GetFirstName()); //alert the FirstName property
Bây giờ, tôi muốn sử dụng JSON để tạo một đối tượng Person mới để các chức năng GetFirstName hoạt động trên nó.
Dưới đây là một cái gì đó giống như là tôi đang tìm cách để làm (nhưng mã này không hoạt động):
var you = new Person() { FirstName: "Mike" };
// OR
var you = new Person{ FirstName: "Mike" };
Liệu có cách nào để sử dụng JSON để tạo một đối tượng mà là của một loại cụ thể?
CẬP NHẬT: Mẫu của tôi với đối tượng Person chỉ nhằm đơn giản hóa câu hỏi. Trong thực tế, tôi không thể sửa đổi các hàm tạo của các đối tượng thực tế mà tôi cần để tạo ra các cá thể. Các đối tượng là một phần của thư viện của bên thứ ba.
CẬP NHẬT: Sử dụng một số gợi ý bên dưới, tôi đã có thể tìm ra cách tạo đối tượng kế thừa từ bản gốc và chấp nhận JSON trong hàm tạo của nó. Đây là gọn gàng!
personWrapper = function(obj){
for(var o in obj){
this[o] = obj[o];
}
};
personWrapper.prototype = new Person();
var you = new personWrapper({FirstName: "Chris"});
alert(you.GetFirstName());
alert(you instanceof Person); // returns True - we are successfully inheriting from Person!
này là khá nhiều chính xác cách thức Microsoft Ajax hoạt động. Bạn định nghĩa một phương thức trả về một kiểu cụ thể. Lớp ajax truy vấn loại và tạo proxy đối tượng js. Sau đó, tất cả các cuộc gọi json trả về một tham số '__type' cho thư viện biết proxy nào sẽ sử dụng để khởi tạo đối tượng. – Travis