js对象的比较


Posted in Javascript onFebruary 26, 2011
Object.prototype.equals = function(obj){ 
if(this == obj) 
return true; 
if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object") 
return false; 
var length = 0; var length1=0; 
for(var ele in this) { 
length++; 
} 
for(var ele in obj) { 
length1++; 
} 
if(length!=length1) 
return false; 
if(obj.constructor==this.constructor){ 
for(var ele in this){ 
if(typeof(this[ele])=="object") { 
if(!this[ele].equals(obj[ele])) 
return false; 
} 
else if(typeof(this[ele])=="function"){ 
if(!this[ele].toString().equals(obj[ele].toString())) 
return false; 
} 
else if(this[ele]!=obj[ele]) 
return false; 
} 
return true; 
} 
return false; 
};

示例如下:
var p1 = {name:"jack",age:18}; 
var p2 = {name:"lucy",age:10}; 
var p3 = {name:"jack",age:18}; 
console.log(p1.equals(p2));//false 
console.log(p1.equals(p3));//true 
console.log(p1.equals({name:"jack",age:18}));//true
Javascript 相关文章推荐
JavaScript 调试器简介
Feb 21 Javascript
使用jquery插件实现图片延迟加载技术详细说明
Mar 12 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
Jan 20 Javascript
nullJavascript中创建对象的五种方法实例
May 07 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
Mar 26 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
微信小程序 POST请求的实例详解
Sep 29 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 Javascript
基于jquery循环map功能的代码
Feb 26 #Javascript
textarea中的手动换行处理的jquery代码
Feb 26 #Javascript
JS 面向对象之神奇的prototype
Feb 26 #Javascript
js 创建书签小工具之理论
Feb 25 #Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
Feb 25 #Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 #Javascript
23个Javascript弹出窗口特效整理
Feb 25 #Javascript
You might like
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
Python使用turtule画五角星的方法
2015/07/09 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python3 元组tuple入门基础
2020/02/09 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python 基于wx实现音乐播放
2020/11/24 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
医学生自荐信
2013/12/03 职场文书
商场消防管理制度
2014/01/12 职场文书
小学校长汇报材料
2014/08/20 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
教师节表彰会主持词
2015/07/06 职场文书
Java基础——Map集合
2022/04/01 Java/Android