Kekeliruan Kesamaan Objek
Walaupun berkongsi ciri yang sama, dua objek yang kelihatan sama kekal tidak sama dalam JavaScript. Fenomena ini telah membingungkan ramai, memandangkan coretan kod di bawah:
var a = {}; var b = {}; console.log(a==b); //returns false console.log(a===b); //returns false
Memahami Operator Kesaksamaan
Perbezaan antara keputusan tetap (==) dan ketat (===) pengendali kesaksamaan terletak pada penukaran jenis. Kesaksamaan biasa melakukan penukaran jenis tersirat, manakala kesaksamaan ketat tidak. Walau bagaimanapun, dalam kes ini, kedua-dua pembolehubah ialah objek, jadi penukaran jenis adalah tidak relevan.
Identiti Objek
Perbandingan objek dinilai kepada benar hanya apabila membandingkan rujukan objek yang sama, tanpa mengira pengendali kesamarataan yang digunakan. Dalam erti kata lain, a == a, a == b (jika b ialah alias bagi a), tetapi a != c (jika c ialah objek berbeza).
Implikasi
Tingkah laku unik ini mempunyai implikasi untuk pengaturcaraan berorientasikan objek. Dua objek dengan sifat yang sama tetapi rujukan yang berbeza dianggap tidak sama, walaupun ia mewakili entiti dunia sebenar yang sama.
Contohnya, dalam pangkalan data, dua objek mewakili orang yang sama dengan nama, alamat dan nama yang sama nombor telefon tidak akan dianggap sama, kerana mereka mempunyai rujukan objek yang berbeza. Ini boleh membawa kepada hasil yang mengelirukan apabila melakukan perbandingan objek.
Penyelesaian
Jika membandingkan sifat dua objek diperlukan, pertimbangkan untuk menggunakan perpustakaan pihak ketiga atau melaksanakan fungsi perbandingan tersuai yang menyemak setiap sifat secara individu.
Atas ialah kandungan terperinci Mengapa Dua Objek JavaScript Sama Tidak Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!