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 写类方式之九
Jul 05 Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
JavaScript 中 apply 、call 的详解
Mar 21 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
Apr 11 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
JavaScript实现省市联动过程中bug的解决方法
Dec 04 Javascript
浅谈JS的原型和继承
May 08 Javascript
js逆向解密之网络爬虫
May 30 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
前端学习——JavaScript原生实现购物车案例
Mar 31 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 is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
PHP中each与list用法分析
2016/01/08 PHP
PHP文件与目录操作示例
2016/12/24 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
提高网站信任度的技巧
2008/10/17 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
js初始化验证实例详解
2016/11/26 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Python字符遍历的艺术
2008/09/06 Python
Python 解析XML文件
2009/04/15 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python subprocess模块常见用法分析
2018/06/12 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
python生成并处理uuid的实现方式
2020/03/03 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
化工工艺专业求职信
2013/09/22 职场文书
培训科主任岗位职责
2014/08/08 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
个人年终总结范文
2015/03/09 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Python学习之异常中的finally使用详解
2022/03/16 Python
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
spring boot实现文件上传
2022/08/14 Java/Android