第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript較難問題

javascript較難問題

imooc_hcy 2015-09-25 00:45:14
var?factorial=(function?f(num){ if(num<=1)return?1; else{ return?num*f(num-1); } }); f=null; var?value=factorial(5); document.write(value);請問,我已經(jīng)把f設為null了,為何還能正常輸出。應該如何理解?function?f(num){ ????if(num<=1)return?1; ????else{ ????return?num*f(num-1); ????} } var?factorial=f; f=null; var?value=factorial(5); document.write(value);請問,f與factorial都是指向函數(shù)的指針嗎,若是為何前者f被清空了之后仍然能用呢?再具體一點的問題,f與factorial都是存儲在棧中的嗎?
查看完整描述

5 回答

已采納
?
Y_du

TA貢獻43條經(jīng)驗 獲得超5個贊

當然有區(qū)別,程序中的東西應該先定義后使用。

var?factorial=f;
f=null;

這樣寫就錯了,因為f在沒有被定義的時候就使用了。只是其一,因為這個f沒加()所以它也不是函數(shù)f()

var value=factorial(5); 同樣,這個factorial是個變量,它可以等于任何東西,但是它不可能接受任何參數(shù),var value=factorial(5);也是無效的,也調(diào)用不了f()這個函數(shù)

查看完整回答
反對 回復 2015-09-25
  • imooc_hcy
    imooc_hcy
    我已經(jīng)用function關鍵字加函數(shù)名f的方法對函數(shù)進行了定義啊,不是說函數(shù)名其實是存儲函數(shù)地指的指針吧?
?
imooc_hcy

TA貢獻2條經(jīng)驗 獲得超0個贊

此題已經(jīng)找到答案,謝謝各位的熱心!

查看完整回答
反對 回復 2015-09-27
?
Kusoku

TA貢獻14條經(jīng)驗 獲得超5個贊

函數(shù)體內(nèi)部調(diào)用自身,這是個遞歸,f=null以后在num*f(num-1)這個地方,此時f不是函數(shù)了,這個調(diào)用表達式執(zhí)行期出錯,你可以把f改成arguments.callee,指向調(diào)用函數(shù)本身,這樣就不會出錯了。

查看完整回答
反對 回復 2015-09-25
?
imooc_hcy

TA貢獻2條經(jīng)驗 獲得超0個贊

您知道嗎?謝謝

查看完整回答
反對 回復 2015-09-25
?
Y_du

TA貢獻43條經(jīng)驗 獲得超5個贊

你這的f與num*f(num-1);一點關系都沒有,num*f(num-1);調(diào)用的是f()這個函數(shù),而不是使用f這個變量。

查看完整回答
反對 回復 2015-09-25
  • imooc_hcy
    imooc_hcy
    ?function f(num){ if(num<=1)return 1; else{ return num*f(num-1); } }; var factorial=f; f=null; var value=factorial(5); document.write(value); 那這種和上在的f的區(qū)別是什么???請大神指教
  • imooc_hcy
    imooc_hcy
    這兩個在計算機內(nèi)部的儲存機理是什么?
  • Y_du
    Y_du
    這個我說的不是很清楚,如果你關系這個。我建議你去先去看看java的,javascript不是很關系 這個。比較js只是腳本語言
點擊展開后面1
  • 5 回答
  • 0 關注
  • 1812 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號