JavaScript判断两个对象是否完全相等的方法

作者:函数茶馆

时间:2026-10-28

浏览:298

本文介绍在JavaScript中判断两个对象是否所有属性完全相同的实现方案。通过扩展Object原型添加equals方法,利用递归遍历属性并区分对象、函数及基本类型进行深度比较,适用于表单页面等场景下的对象一致性校验。

文章目录

JavaScript判断两个对象是否完全相等的方法

在处理表单页面逻辑时,经常需要判断两个JavaScript对象的所有属性是否完全一致。


以下方案参考自StackOverflow上的讨论,在此记录备用。


具体实现代码如下:

 
Object.prototype.equals = function(x)
{ 
var p;
for(p in this) {
if(typeof(x[p])=='undefined') {return false;}
} 
for(p in this) {
if (this[p]) {
switch(typeof(this[p])) {
case 'object':
if (!this[p].equals(x[p])) { return false; } break;
case 'function':
if (typeof(x[p])=='undefined' ||
(p != 'equals' && this[p].toString() != x[p].toString()))
return false;
break;
default:
if (this[p] != x[p]) { return false; }
} 
} else {
if (x[p])
return false;
} 
} 
for(p in x) {
if(typeof(this[p])=='undefined') {return false;}
} 
return true;
} 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章