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管中窥豹 形参与实参浅析
Dec 17 Javascript
JS获得浏览器版本和操作系统版本的例子
May 13 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
Apr 27 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
Feb 19 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
mui back 返回刷新页面的实例
Dec 06 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
react组件基本用法示例小结
Apr 27 Javascript
layui实现显示数据表格、搜索和修改功能示例
Jun 03 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
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
php操作mongoDB实例分析
2014/12/29 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
Python如何为图片添加水印
2016/11/25 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
出纳的岗位职责
2013/11/09 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
2015年维修工作总结
2015/04/25 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
环保建议书范文
2015/09/14 职场文书
求职信如何撰写?
2019/05/22 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP