Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghantar Objek JavaScript Biasa ke Contoh Kelas?

Bagaimana untuk Menghantar Objek JavaScript Biasa ke Contoh Kelas?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 13:02:021086semak imbas

How to Cast Plain JavaScript Objects into Instances of Classes?

Mengirimkan Objek Biasa ke Contoh Kelas dalam JavaScript

Mencipta tika sebenar daripada objek biasa dalam JavaScript adalah mungkin tetapi datang dengan cabaran tertentu. Mari kita terokai senario praktikal dan penyelesaiannya.

Masalah

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 ().

Penyelesaian

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.

Kaedah Tersuai

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 ...;
};

Pendekatan Mudah untuk Kes Asas

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.

Pelaksanaan Lain

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

Nota Tambahan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn