微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐