Trong JavaScript, các kiểu primitive như string, number, boolean được so sánh theo giá trị (by value) trong khi các đối tượng (native hoặc custom) được so sánh theo tham chiếu (by reference). So sánh theo tham chiếu nghĩa là kiểm tra hai hoặc nhiều đối tượng có trỏ đến cùng một vị trí trong bộ nhớ hay không.
Dưới đây là mã giải thích equality của đối tượng trong JavaScript:
Ví dụ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 18px; font-weight: 500; color: rebeccapurple; } </style> </head> <body> <h1>Equality của đối tượng trong JavaScript</h1> <div class="result"></div> <button class="Btn">CLICK HERE</button> <h3>Nhấn nút trên để so sánh đối tượng</h3> <script> let BtnEle = document.querySelector(".Btn"); let resEle = document.querySelector(".result"); let obj = { name: "Rohan", age: 21, }; let obj1 = { name: "Rohan", age: 21, }; let obj2 = obj; BtnEle.addEventListener("click", () => { if (obj != obj1) { resEle.innerHTML = "obj không bằng obj1 <br>"; } if (obj2 === obj) { resEle.innerHTML += "obj2 bằng obj"; } }); </script> </body> </html>
Kết quả
Mã trên sẽ tạo ra kết quả sau:

Khi nhấn nút 'CLICK HERE':
