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

來源:互聯網
上載者:User

【聲明:下文為筆記,非原創】

眾所周知,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(含電池)
外觀:美觀
品牌:不買日貨,不買國貨

再附:寫這篇文章主要是想發在首頁上問一下,又不好意思直接求助,因此才有了這篇文章,我真是陰險,哈哈!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.