1. 程式人生 > 其它 >6.2 函式呼叫的分類

6.2 函式呼叫的分類

表6.1 函式呼叫的分類

名稱 說明
方法呼叫 通過接收方物件對函式進行呼叫(包括apply 與call 呼叫)
建構函式呼叫 通過new 表示式對函式進行呼叫
函式呼叫 以上兩種方式之外的函式呼叫

將以方法呼叫的方式使用的函式稱為方法,同理,將以建構函式呼叫方式使用的函式稱為建構函式。

函式宣告語句的後置

通過函式宣告語句宣告的函式,可以在進行宣告的程式碼行之前就對其呼叫。雖然這個例子在函式的作
用域內進行,不過對於全域性作用域情況也是相同。

function hzh1() {
    hzh2(); // 在宣告函式fn之前對其進行呼叫
    function hzh2() {
        console.log('黃子涵');
    }
}
hzh1();
[Running] node "e:\HMV\JavaScript\JavaScript.js"
黃子涵

[Done] exited with code=0 in 99.724 seconds

通過函式宣告語句宣告的函式,可以在進行宣告的程式碼行之前就對其呼叫。在通過匿名函式表示式進行定義的情況下結果將會不同。

function hzh3() {
    hzh4();
    var hzh4 = function() {
        console.log('黃子涵');
    }
}
hzh3();
[Running] node "e:\HMV\JavaScript\JavaScript.js"
e:\HMV\JavaScript\JavaScript.js:2
    hzh4();
    ^

TypeError: hzh4 is not a function
    at hzh3 (e:\HMV\JavaScript\JavaScript.js:2:5)
    at Object.<anonymous> (e:\HMV\JavaScript\JavaScript.js:7:1)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47

[Done] exited with code=1 in 3.35 seconds