游民家园

leafyoung v.s. dotnet

导航

Javascript: IE中命名函数直接量的Bug?

【声明:下文为笔记,非原创】

众所周知,JavaScript中可以用函数直接量定义一个函数变量,比如:
var myFunc = function (x) {
 return "hello, " + x + "!";
};
如果要定义一个递归函数,那么还可以给函数直接量命名,比如:
var myFunc = function fact(x) {
 if (x <= 1) return 1;
 else return x * fact(x - 1);
};
注意:这里并没有真正创建一个名为fact()的函数,只是允许函数直接量里面的函数体使用fact引用自身而已。因此,如果在Mozilla Firefox里面运行下面的代码:
function fact(name) {
 return "hello, " + name + "!";
}

var f = function fact(x) {
 if (x <= 1) return 1;
 else return x * fact(x - 1);
};

document.write(fact("yanglf"));
document.write(f(3));
那么你可以得到期望的结果: "hello, yanglf!6";但是假如你在IE里面运行上述代码,视fact()函数在函数直接量之前和之后定义,你将得到完全不同的结果,而且都是错的

附:五一想去买台笔记本电脑,可以对笔记本行情实在了解甚少,希望哪位达人能推荐一下。

期望配置:
CPU: 2G左右 (至少1.6G以上),双核
内存:1G DDR
显卡:独立显卡,256MB(以上)
屏幕:宽屏 14寸(最好BrightView,不过该技术据说是HP特有)
光驱:内置 DVD刻录
硬盘:80G (最好120G以上)SATA 5400rm
摄像头:内置,130万象素
网卡:100M (据说现在有1000M了)
电池:锂电 至少续航3小时
重量:< 2.5kg(含电池)
外观:美观
品牌:不买日货,不买国货

再附:写这篇文章主要是想发在首页上问一下,又不好意思直接求助,因此才有了这篇文章,我真是阴险,哈哈!

posted on 2007-04-28 12:44  游民一族  阅读(2668)  评论(9编辑  收藏  举报