JavaScript能判定两个function等价吗?

作者:月影 来源:影月阁 时间:2009-08-13 14:45:00 

这里的等价不是说function的toString相同,也不是说function的引用相同,而是说
对于两个function A和B,如果它们的输入参数相同,返回值必然相同

JavaScript存在这样的判定函数吗?

答案是不存在,证明如下:

假定存在一个function P能判断任意两个一般函数f1和f2是否等价,即

若f1、f2等价,P(f1,f2) return true

若f1、f2不等价, P(f1,f2) return false;

现在我定义一个函数P1

function P1(f1,f2){
    if(P(P,f1) && P(P1,f2)) return false;
    else return P(f1,f2);
}

那么对于P(P,P1)

1) 若P(P,P1) return true,那么P,P1等价,可P1(P,P1)却return false,显然和P,P1等价假设矛盾

2) 若P(P,P1) return false,那么P1(P,P1) return false,而对于任意其它f1,f2,显然P1(f1,f2)的返回值都和P(f1,f2)的返回值完全相同,根据前面的定义,P与P1等价,同P(P,P1) return false矛盾。

综上所述,不存在一个函数P,能够判定JavaScript的两个function等价。

证毕。

标签:function,判断,函数
0
投稿

猜你喜欢

  • ie7空格的间距要比ie6/firefox/opera的都要大

    2008-05-24 16:54:00
  • 巧用Dreamweaver MX共享Execl XP文件

    2009-07-14 21:56:00
  • MySQL命令终端有beep声

    2009-02-26 15:27:00
  • Oracle也有注入漏洞

    2010-07-23 13:03:00
  • swfobject2.1居中问题

    2008-12-15 17:18:00
  • 利用SQLyogEnt对Mysql数据库进行转移

    2012-02-25 20:17:30
  • 页面中 CSS 加载方式的优化

    2008-03-26 12:36:00
  • Oracle 异构服务实践

    2007-08-17 10:00:00
  • Javascript:window对象出身何处

    2007-08-28 15:16:00
  • 《JavaScript语言精粹》

    2009-04-03 11:27:00
  • 详尽解析javascript event对象

    2008-06-08 12:25:00
  • 利用windows任务计划实现oracle的定期备份

    2009-08-31 12:24:00
  • 用ASP显示ACCESS数据库的GIF图象

    2008-11-16 18:09:00
  • 走中国特色的网站重构道路

    2010-04-08 16:10:00
  • Oracle 安装和卸载问题收集(集合篇)第1/6页

    2009-07-02 12:20:00
  • 在Oracle网络结构解决连接问题

    2010-07-28 12:49:00
  • js金额浮点格式化控件

    2008-08-01 16:52:00
  • Frontpage中网页字体的美化研究

    2008-03-10 12:13:00
  • 如何过滤中国站长站(chianz)文章干扰码

    2008-01-04 20:14:00
  • HTTP 错误 500.100 - 内部服务器错误 - ASP 错误

    2008-09-12 13:07:00
  • asp之家 网络编程 m.aspxhome.com