JavaScript tidak secara langsung menyediakan metode klon objek. Oleh karena itu, ketika objek B diubah dalam kode berikut, objek A diubah.
a = {k1: 1, k2: 2, k3: 3};
b = a;
B.K2 = 4;
Jika Anda hanya ingin mengubah B dan tetap konstan, Anda perlu menyalin objek a.
Gunakan jQuery untuk menyalin objek
Ketika jQuery dapat digunakan, metode Extade JQuery sendiri dapat digunakan untuk mengimplementasikan penyalinan objek.
a = {k1: 1, k2: 2, k3: 3};
b = {};
$ .extend (b, a);
Kustomisasi metode clone () untuk mengimplementasikan penyalinan objek
Metode berikut adalah ide dasar penyalinan objek.
Object.prototype.clone = function () {var copy = (instance dari array ini)? []: {}; untuk (attr in this) {if (! obj.hasownproperty (attr)) lanjutkan; Salin [attr] = (typeof ini [i] == "objek")? obj [attr] .clone (): obj [attr]; } return copy;}; a = {k1: 1, k2: 2, k3: 3}; b = a.clone ();Contoh -contoh berikut lebih komprehensif dan cocok untuk menyalin dalam sebagian besar objek.
function clone (obj) {// menangani 3 tipe sederhana, dan null atau tidak terdefinisi if (null == obj || "objek"! = TypeOf obj) mengembalikan obj; // menangani tanggal if (obj instance dari tanggal) {var copy = new date (); copy.settime (obj.getTime ()); kembalikan salinan; } // menangani array if (obj instance dari array) {var copy = []; untuk (var i = 0, var len = obj.length; i <len; ++ i) {copy [i] = clone (obj [i]); } return copy; } // menangani objek jika (obj objek) {var copy = {}; untuk (var attr dalam obj) {if (obj.hasownproperty (attr)) salin [attr] = clone (obj [attr]); } return copy; } lempar kesalahan baru ("Tidak dapat menyalin obj! Jenisnya tidak didukung.");}Artikel di atas pemahaman mendalam tentang penyalinan objek (klon objek) di JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.