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代码
Aug 05 Javascript
用jQuery中的ajax分页实现代码
Sep 20 Javascript
9款2014最热门jQuery实用特效推荐
Dec 07 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
JS中mouseup事件丢失的原因与解决办法
Jun 14 Javascript
vue实现页面加载动画效果
Sep 19 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
JS开发 富文本编辑器TinyMCE详解
Jul 19 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 Javascript
基于Cesium绘制抛物弧线
Nov 18 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操作数组的一些函数整理介绍
2011/07/17 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
Cpy和Python的效率对比
2015/03/20 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
django中瀑布流写法实例代码
2019/10/14 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
军训的自我鉴定
2013/12/10 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
应届大学生自荐书
2014/06/17 职场文书
法学院毕业生求职信
2014/06/25 职场文书
校园广播站开场白
2015/06/01 职场文书
八月一日观后感
2015/06/10 职场文书
2015年暑假工作总结
2015/07/13 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python