Rumah > Artikel > hujung hadapan web > Bagaimana untuk Menghantar Objek JavaScript Biasa ke Contoh Kelas?
Mencipta tika sebenar daripada objek biasa dalam JavaScript adalah mungkin tetapi datang dengan cabaran tertentu. Mari kita terokai senario praktikal dan penyelesaiannya.
Pertimbangkan dua kelas, Orang dan Haiwan. Pelayan mengembalikan tatasusunan objek Orang generik:
[ { personName: "John", animals: [{ animalName: "cheetah" }, { animalName: "giraffe" }] }, { personName: "Smith", animals: [{ animalName: "cat" }, { animalName: "dog" }] } ]
Matlamatnya adalah untuk menghantar tatasusunan objek ini ke dalam tatasusunan tika Orang yang ditaip untuk mendayakan panggilan seperti orang[0].Haiwan[2].Jalankan ().
Mencipta kejadian daripada objek biasa melibatkan memanggil pembina mereka dan menetapkan sifat dengan betul.
Pendekatan umum ialah meminta pembina menerima objek yang menyerupai contoh dan mengklon mereka. Logik penciptaan contoh dalaman dikendalikan oleh pembina.
Penyelesaian lain ialah mencipta kaedah statik pada kelas Orang yang mengambil objek dan menjana tika:
Person.fromJSON = function(obj) { // Custom code to create instances based on `obj` return ...; };
Untuk kes mudah seperti anda, di mana tiada pembina dan hanya harta awam, anda boleh melakukan ini:
var personInstance = new Person(); for (var prop in personLiteral) personInstance[prop] = personLiteral[prop];
Atau, anda boleh menggunakan Object. tetapkan:
var personInstance = Object.assign(new Person(), personLiteral);
Ikuti pendekatan yang serupa untuk mencipta tika Haiwan.
Memandangkan JSON tidak menyampaikan maklumat kelas, anda perlu mengetahui struktur objek terlebih dahulu. Dalam kes anda, pelaksanaannya akan kelihatan seperti ini:
var persons = JSON.parse(serverResponse); for (var i=0; i<persons.length; i++) { persons[i] = $.extend(new Person, persons[i]); for (var j=0; j<persons[i].animals; j++) { persons[i].animals[j] = $.extend(new Animal, persons[i].animals[j]); } }
Kelas Haiwan anda berkemungkinan mentakrifkan kaedah lariannya pada prototaip, bukannya setiap tika.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Objek JavaScript Biasa ke Contoh Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!