搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

JS 中对象equals方法的实现

上次我们谈到javascript 中 浅拷贝与深拷贝的实现..
这回我们看看如何实现判断两个对像的内容是否相等。
这里有一个克隆结果原则是针对java语言的,当然javascript也可以胜任。

克隆满足的条件
clone()方法将对象复制了一份并返还给调用者。所谓“复制”的含义与clone()方法是怎么实现的有关。一般而言,clone()方法满足以下的描述:

第一、对任何的对象x,都有:x.clone() != x;换言之,克隆对象与原对象不是同一个对象。

第二、对任何的对象x,都有:x.clone().getclass == x.getclass(),换言之,克隆对象与原对象的类型一样;在javascript getclass 就相当于constructor。

第三、如果对象x的equals()方法是定义恰当的话,那么 x.clone().equals(x)也应当是成立的。

在java语言的api中,凡是提供了clone()方法的类,都满足上面的这些这些条件。java语言的设计师在设计自己的clone()方法是,也应当遵守这三个条件。
第三条为可选,不必强制实现的,意思是说只要编制得当,也可以实现。
我们还拿上次的例子看一下:
运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

其它对像的equals 方法的样例:
后面一个,我重定义了 boolean 构造函数,并实现了它的tostirng()方法。
可以瞅瞅。
运行代码框

[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]

()

相关文章:
© 2006   www.java-asp.net