Saya tidak tahu bila perkataan baharu mula muncul dalam bulatan bahagian hadapan: pengklonan dalam objek. Ia mungkin kelihatan sangat tinggi, tetapi sebenarnya ia bukanlah sesuatu yang baru dalam pembangunan projek sebenar kami, anda mungkin telah menggunakannya, bagaimanapun, disebabkan oleh aksara Cina yang luas dan mendalam, beberapa perkara yang pada asalnya mudah dikaburkan oleh beberapa perbendaharaan kata yang kelihatan profesional. Tambah hiasan dan ia menjadi misteri.
Kenapa mengklon dalam objek pada mulanya? Tolong benarkan saya membuat tekaan: Kadangkala anda mesti berfikir bahawa dokumen objek terbina dalam js terlalu panjang, maka anda boleh melakukan ini:
Kod di atas memudahkan document.getElementById, dan juga menambahkan kaedah mengikut ahli pada objek dokumen asal Anda boleh mengesahkan pertimbangan anda melalui nilai status yang dikembalikan oleh document.hasOwnProperty('by'). Lihat contoh berikut.
Ia boleh dilihat bahawa apabila objek hanya dihantar ke pembolehubah baharu, ia hanya menambah alias pada objek. Ini bermakna bahawa dengan beroperasi pada alias, nilai kunci objek asal akan berubah. Tetapi masalahnya ialah kadangkala kita mahu newPerson sepenuhnya bebas daripada orang dan tiada hubungan penyegerakan antara mereka, jadi kita perlu menjana salinan, sila lihat contoh:
var obj = {a: 0, b: 1, c: 2};
var arr = [0, 1, 2];
//Lakukan pengklonan dalam
var newobj = cloneObj(obj);
var newarr = cloneObj(arr);
//Padamkan ahli objek baharu selepas pengklonan
padam newobj.a;
newarr.splice(0,1);
console.log(obj, arr, newobj, newarr);
//Keputusan: {a: 0, b: 1, c: 2}, [0, 1, 2], {b: 1, c: 2}, [1, 2];