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对象模型-执行模型
Apr 28 Javascript
jquery中ajax学习笔记一
Oct 16 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
Jquery操作Ajax方法小结
Nov 29 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
实现easyui的datagrid导出为excel的示例代码
Nov 10 Javascript
js模拟微博发布消息
Feb 23 Javascript
修改vue+webpack run build的路径方法
Sep 01 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
基于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实现的MySQL通用查询程序
2007/03/11 PHP
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
js 目录列举函数
2008/11/06 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
python计算auc指标实例
2017/07/13 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
用Python制作音乐海报
2021/01/26 Python
Otel.com:折扣酒店预订
2017/08/24 全球购物
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
房地产财务管理制度
2014/02/02 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技