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 jquery ajax的几种用法总结(及优缺点介绍)
Jan 28 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 Javascript
JavaScript几种数组去掉重复值的方法推荐
Apr 12 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
JS返回只包含数字类型的数组实例分析
Dec 16 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 Javascript
AngularJS表单验证功能
Oct 19 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
VUE 全局变量的几种实现方式
Aug 22 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
JS实现按比例缩小图片宽高
Aug 24 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
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
php正则表达式学习笔记
2015/11/13 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python实现得到一个给定类的虚函数
2014/09/28 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
大学生自我鉴定范文模板
2014/01/21 职场文书
求职简历中自我评价
2014/01/28 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
加薪申请报告范本
2015/05/15 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA