Tag: CallInerFunction

  • JS 函式內仍可以執行函式

    在JAVASCRIPT 函式裡面,我們時常會安插其他函示的屬性資訊,所以今天來探討一下這個有趣的議題。

    這次我們會在函式內部呼叫其他不同型別內容的函式,以及探討函式內的參數呼叫順序!

    還記得火影忍者裡的配恩六道,一口氣轟掉木葉村?

    當時的鳴人知道自己匯集仙術能量的掌握度不成熟,便用了作弊的方法…

    把影分身藏在妙木山,3個影分身專注於匯集仙術能量,一旦真實的自己在戰場上沒有了查克拉或式仙術能量…

    就是直接呼叫! 可讓自己隨時瞬間充滿能量!

    然而… 我們等下說的函式內執行函式也與這個招大同小異!

    範例程式

    let varA =1;
    console.log(varA);
    
    function peparationOfWork(){
    console.log('得知需求');
    console.log('寫下項目並分析');
    
    };
    
    function DoingWork(){
    console.log('準備好工具');
    console.log('電腦既定的檔案與程式');
    console.log('電錶量測');
    }
    
    
    function DoubleCheckYourWork() {
        console.log('階段性檢點');
        console.log('階段式物理性測試');
    
      }

    將peparationOfWork() 裡面安插函式DoingWork()

    let varA =1;
    console.log(varA);
    
    function peparationOfWork(){
    console.log('得知需求');
    DoingWork();
    console.log('寫下項目並分析');
    
    };
    
    function DoingWork(){
    console.log('準備好工具');
    console.log('電腦既定的檔案與程式');
    console.log('電錶量測');
    }
    
    
    function DoubleCheckYourWork() {
        console.log('階段性檢點');
        console.log('階段式物理性測試');
    
      }
    
      console.log(peparationOfWork());

    peparationOfWork() 確實在執行了DoingWork()!


    換做把DoubleCheckYourWork() 換到最前面執行

    let varA =1;
    console.log(varA);
    
    function peparationOfWork(){
    console.log('得知需求');
    DoingWork();
    console.log('寫下項目並分析');
    
    };
    
    function DoingWork(){
    console.log('準備好工具');
    console.log('電腦既定的檔案與程式');
    console.log('電錶量測');
    }
    
    
    function DoubleCheckYourWork() {
        console.log('階段性檢點');
        console.log('階段式物理性測試');
    
      }
      DoubleCheckYourWork();
      console.log(peparationOfWork());

    呼叫Function 順序以及參數有差?

    有!

    先來測試一下 呼叫函式(para1,para2) 的陳述式。

    OrderBy()只給para1

    function OrderBy(num1,num2) { 
        console.log(num1,num2);
    }
    
    OrderBy(2);
    
    OrderBy(3);

    OrderBy()給para1,para2

    function OrderBy(num1,num2) { 
        console.log(num1);
        console.log(num2);
    }
    
    OrderBy(1,2);
    
    OrderBy(3,4);

    觀察最後給他們執行的順序,你給他們甚麼他們就式按步就班做給你。


    結論

    函式呼叫方式… 其實跟其他框架的 “插斷執行” 很類似但…不能說相同!

    我們一般提到的 “插斷執行” 是在不同運作模式下的權限之分,這一個很嚴謹的規定。

    同樣都在於… 事先宣告好內部資料型別以及演算法,再來後面執行時編排順序。