表6.1 函数调用的分类
名称 |
说明 |
方法调用 |
通过接收方对象对函数进行调用(包括apply 与call 调用) |
构造函数调用 |
通过new 表达式对函数进行调用 |
函数调用 |
以上两种方式之外的函数调用 |
将以方法调用的方式使用的函数称为方法,同理,将以构造函数调用方式使用的函数称为构造函数。
函数声明语句的后置
通过函数声明语句声明的函数,可以在进行声明的代码行之前就对其调用。虽然这个例子在函数的作
用域内进行,不过对于全局作用域情况也是相同。
| function hzh1() { |
| hzh2(); |
| 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?