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 相关文章推荐
js本身的局限性 别让javascript做太多事
Mar 23 Javascript
js substr、substring和slice使用说明小记
Sep 15 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
javascript实现随时变化着的背景颜色
Apr 02 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
详解JavaScript按概率随机生成事件
Aug 02 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 Javascript
JS实现网页时钟特效
Mar 25 Javascript
vue实现购物车案例
May 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
浅谈PHP的反射机制
2016/12/15 PHP
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
js实现时钟定时器
2020/03/26 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
javascript中闭包closure的深入讲解
2021/03/03 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
python通过post提交数据的方法
2015/05/06 Python
详解Python中的条件判断语句
2015/05/14 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python实现学员管理系统
2019/02/26 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
python 获取计算机的网卡信息
2021/02/18 Python
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
初入社会应届生求职信
2013/11/18 职场文书
演讲比赛策划方案
2014/06/11 职场文书
记账会计岗位职责
2014/06/16 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
导游词之青城山景区
2019/09/27 职场文书