posts - 82, comments - 269, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

两个JS对象怎样才能相等

Posted on 2007-10-27 00:42 itspy 阅读(3482) 评论(4)  编辑  收藏 所属分类: 小巧实例

在JS中,两个对象如何才能相等?下面的两个 Alert,只有一个输出true.

在JS中如何才能构造出两个JS对象相等?

 var prop1 = {asd:{def:'abc'}};

 var prop2 = {asd:{def:'abc'}};
 
 alert( prop1==prop2)//false
 
 alert( prop1['asd']==prop2['asd'] ) ;//false

 alert( prop1['asd']['def']==prop1['asd']['def'] ) ; //true






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

<script>

 var prop1 = {asd:{def:'abc'}};

 var prop2 = {asd:{def:'abc'}};
  
 alert( prop1==prop2)//false
 
 alert( prop1['asd']==prop2['asd'] ) ;//false

 alert( prop1['asd']['def']==prop1['asd']['def'] ) ; //true

</script>

</HEAD>

<BODY>

</BODY>
</HTML>


评论

# re: 两个JS对象怎样才能相等  回复  更多评论   

2007-10-27 10:15 by BeanSoft
学过 Java 吧, 还知道 Java 里面判断相等可以覆盖 equlas 方法, JavaScript 里面也是一样的, 首先你要声明一个显示对象, 然后覆盖里面的 equals 方法, 参考:
http://www.blueidea.com/tech/web/2003/1301.asp
JS 中对象equals方法的实现

# re: 两个JS对象怎样才能相等  回复  更多评论   

2007-10-27 10:48 by bean
js中的对象比较和java中是一样的,只有地址相同才相等。只有string、number、boolean三种基本类型才是可以直接对值进行比较。所以会出现最后一个为true。

# re: 两个JS对象怎样才能相等  回复  更多评论   

2007-10-27 14:36 by itspy
哎,我又何尝不知道楼上说的这些,只是最近看JS代码被郁闷了,不知道他里面写的代码是干嘛用的.

http://www.blogjava.net/itspy/archive/2007/10/26/156005.html

# re: 两个JS对象怎样才能相等  回复  更多评论   

2011-08-04 14:45 by r
rr

只有注册用户登录后才能发表评论。


网站导航: