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 相关文章推荐
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
Mar 01 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
Jan 22 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
JS实现页面跳转与刷新的方法汇总
Aug 30 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 XML操作类DOMDocument
2009/12/16 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
php微信公众号开发之简答题
2018/10/20 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
老生常谈js数据类型
2017/08/03 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
python多线程方式执行多个bat代码
2016/06/07 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python 的AES加密与解密实现
2019/07/09 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python range实例用法分享
2020/02/06 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
python RSA加密的示例
2020/12/09 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
应届生求职信写作技巧
2013/10/24 职场文书
资料员岗位职责
2013/11/17 职场文书
竞选班委演讲稿
2014/04/28 职场文书
保险公司开门红口号
2014/06/21 职场文书
机械机修工岗位职责
2014/08/03 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
数学备课组工作总结
2015/08/12 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL