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 相关文章推荐
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
Dec 16 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
Dec 27 Javascript
Angular中ng-options下拉数据默认值的设定方法
Jun 21 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
Sep 28 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 Javascript
jquery.pagination.js分页使用教程
Oct 23 jQuery
JavaScript onclick事件使用方法详解
May 15 Javascript
JavaScript canvas实现文字时钟
Jan 10 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 gzip压缩输出的实现方法
2013/04/27 PHP
CI框架常用方法小结
2016/05/17 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
常用简易JavaScript函数
2009/04/09 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
python删除文件示例分享
2014/01/28 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
python多进程实现文件下载传输功能
2018/07/28 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python中pdb模块实例用法
2021/01/15 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
师范教师毕业鉴定
2014/01/13 职场文书
初中学生期末评语
2014/04/24 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
公司门卫岗位职责
2015/04/13 职场文书
紧急迫降观后感
2015/06/15 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
2016年公司新年寄语
2015/08/17 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
python pyhs2 的安装操作
2021/04/07 Python
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS