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
Lepaskan: 2024-10-18 13:02:02
asal
1085 orang telah melayarinya

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" }] }
]
Salin selepas log masuk

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 ...;
};
Salin selepas log masuk

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];
Salin selepas log masuk

Atau, anda boleh menggunakan Object. tetapkan:

var personInstance = Object.assign(new Person(), personLiteral);
Salin selepas log masuk

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]);
  }
}
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan