在javascript中,怎么看两个函数是否相等,比如给定fn1与fn2,怎么知道fn1与fn2是不是同一个函数?

fn1==fn2不行;fn1.toString()与fn2.toString()方法都不行。

用 fn1 === fn2 就是严格的判断两个函数是否相等了!
你说的相等,是不是两个不同的函数,然后他们的方法体一样,希望判断的结果也是true?
不知道你了不了解java,jvm能判断的仅仅是两个引用的地址是否相同,如果想按实际逻辑判断相等,只能覆盖equals()方法 所以这个问题必须依赖于业务需求。 否则,双胞胎兄弟就不是同一个人!克隆人也不是同一个人!除非你的逻辑需求里需要认定他们是同一个人。追问

对,我需要的就是如果两个函数完成的功效一样就返回true,否则就是false。朋友,你有方法解决没?

追答

这种需求通常能绕开,通过其它途径解决。如果非要比较这么两个函数,只能为他们实现比较的方法,逻辑需要自己写。就像java里String、Boolean等类型的比较方法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-16
这个好像没有直接的函数可以判断,因为你要判断的是两个函数是否相同,而不是数值的相等,给个思路吧,不知道你是不是这个意思:
你给两个函数相同的输入,然后看看是否输出相同,如果相同就是相同的函数功能。追问

我的意思就是说怎么判断两个函数的函数体是否相等。不要拿具体的函数来测试。

第2个回答  2011-05-16
fn1===fn2追问

更不行,呵呵。