`
snake_hand
  • 浏览: 625061 次
社区版块
存档分类
最新评论

Javascript如何判断对象是否相等

 
阅读更多

在做表单页面的时候,想判断2个js对象,是不是所有完全相同。

这里是stackoverflow上的解决办法,在这里记录一下。

原文地址: http://stackoverflow.com/questions/1068834/object-comparison-in-javascript

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;
}

 

分享到:
评论

相关推荐

    Javascript判断对象是否相等实现代码

    在进行Web开发时,尤其是处理表单页面,我们常常需要比较两个JavaScript对象是否完全相等。在不同的场景中,对象相等的定义可能有所不同,但基本的比较逻辑包括了比较对象的类型、属性值、属性存在与否等多个方面。...

    js判断数组是否相等的方法

    在JavaScript中,判断两个数组是否相等是一个常见的需求,尤其在处理数据比较或者验证时。根据标题和描述,我们可以区分两种不同的场景: 1. **数组完全相等**:在这种情况下,不仅要求数组中的元素相同,而且元素...

    JavaScript比较两个对象是否相等的方法

    本js代码通过对js对象进行各方面的比较来判断两个对象是否相等 cmp = function( x, y ) { // If both x and y are null or undefined and exactly the same if ( x === y ) { return true; } // If they are not ...

    JavaScript中判断两个字符串是否相等的方法

    在JavaScript中判断两个字符串是否相等是编程基础中的重要内容,尤其对于初学者来说,理解字符串相等性的判断方法对于编写有效的代码至关重要。首先,要了解JavaScript提供了两种相等性运算符:“==”和“===”。这...

    Javascript 面向对象的JavaScript进阶

    ### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...

    JavaScript面向对象编程指南 pdf

    - JavaScript对象都有一个内置的`__proto__`属性,指向其构造函数的原型。原型是一个对象,可以包含共享的属性和方法。原型链允许对象访问其构造函数原型上的属性和方法。 - 使用`Object.prototype.isPrototypeOf...

    JavaScript面向对象编程指南

    JavaScript的鸭子类型(Duck Typing)实现了动态多态,只要对象具有相同的方法和属性,就可以互相替换使用: ```javascript function makeSound(animal) { animal.sound(); } class Bird { sound() { console....

    JS判断两个数组或对象是否相同的方法示例

    这个函数首先检查两个对象是否严格相等,其次判断两个对象是否都是对象类型,并且具有相同的构造函数。然后,它会遍历两个对象的所有自有属性,对每个属性递归地调用`cmp`函数比较属性值。对于对象或数组类型的属性...

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    javascript面向对象

    对象则是根据类创建的实例,每个对象可以有不同的属性值,但它们共享相同的类方法。例如,“人”是一个类,张三和李四分别是这个类的两个实例,他们共享人类的共性(如行走、说话),但各自拥有不同的名字和年龄。 ...

    基于JavaScript判断两个对象内容是否相等

    这篇文章主要介绍了基于JavaScript判断两个对象内容是否相等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ES6中有一个方法判断两个对象是否相等,这个方法...

    第15章 javascript面向对象与原型

    面向对象编程语言的一个核心概念是类,通过类可以创建具有相同属性和方法的对象。然而,ECMAScript中并没有引入类的概念,这就使得JavaScript中的对象与传统面向对象语言中的对象存在差异。 接下来,我们将详细探讨...

    JavaScript中判断对象类型的几种方法总结

    每个JavaScript对象都有一个`constructor`属性,它指向创建该对象的构造函数。这可以用来判断未知对象的类型。例如,通过比较`arr.constructor === Array`,可以确定`arr`是否为数组。然而,`constructor`属性在...

    详细谈谈javascript的对象

    下面详细介绍JavaScript对象的知识点: 1. 对象的定义和属性访问 在JavaScript中,对象可以被视为键值对的集合。对象中的每个属性或方法都通过一个唯一的名称(属性名)进行标识。这些属性名可以是任何字符串,包括...

    JS判断两个对象内容是否相等的方法示例

    通过这个自定义的 `isEqual` 函数,开发者可以有效地比较两个JavaScript对象的内容是否相等,从而解决了JavaScript中默认相等判断的局限性。这个方法不仅考虑了基本类型的比较,还涵盖了对象和数组的复杂结构,使得...

    Javascript面向对象基础.rar

    多态是指不同的对象能够响应相同的消息(方法)。JavaScript通过函数的动态绑定实现多态,同一个方法在不同对象上可以有不同的行为。 10. **封装** 封装是面向对象的核心概念之一,它隐藏对象的内部细节,仅通过...

    一个微小的247B的工具类用于深度判断值是否相等

    在JavaScript开发过程中,有时我们需要深度比较两个值是否完全相等,包括它们的属性、元素以及嵌套的对象和数组。这通常在验证数据状态或者比较复杂结构时非常有用。标题提到的"一个微小的247B的工具类用于深度判断...

    javascript 经典面向对象设计

    - **多态性**:多态性是指不同对象可以响应相同的接口或消息。在JavaScript中,多态性可以通过重写方法来实现。 #### JavaScript中的面向对象编程实践 - **构造函数与原型**:构造函数用于创建对象实例,而原型则...

Global site tag (gtag.js) - Google Analytics