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

作者:函数茶馆时间:2026-10-28 00:29:21浏览:299

本文介绍在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;
} 
作者最新文章