From 0b1a19b3f024164a2311ff001f7f92888983a8bc Mon Sep 17 00:00:00 2001 From: cyk2018 <57099728+cyk2018@users.noreply.github.com> Date: Thu, 24 Jun 2021 07:48:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=80=E4=B8=AA=E6=9B=B4=E5=A5=BD?= =?UTF-8?q?=E7=9A=84=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 此例子可以更好的体现函数表达式中使用带函数名的函数的特点 --- docs/types/function.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/types/function.md b/docs/types/function.md index d8e649e..eedbcd0 100644 --- a/docs/types/function.md +++ b/docs/types/function.md @@ -35,15 +35,19 @@ var print = function(s) { 采用函数表达式声明函数时,`function`命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。 ```javascript -var print = function x(){ - console.log(typeof x); +var print = function x(a){ + console.log(a); }; x // ReferenceError: x is not defined -print() -// function +x(3) +// ReferenceError: x is not defined + +print +// ƒ x(a){ +// 3 ``` 上面代码在函数表达式中,加入了函数名`x`。这个`x`只在函数体内部可用,指代函数表达式本身,其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身,二是方便除错(除错工具显示函数调用栈时,将显示函数名,而不再显示这里是一个匿名函数)。因此,下面的形式声明函数也非常常见。 From c8477e9fd43654d2503155caa88cc5cac2a53f0a Mon Sep 17 00:00:00 2001 From: cyk2018 <57099728+cyk2018@users.noreply.github.com> Date: Thu, 24 Jun 2021 07:48:17 +0800 Subject: [PATCH 2/2] Update function.md --- docs/types/function.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/types/function.md b/docs/types/function.md index eedbcd0..eb8a882 100644 --- a/docs/types/function.md +++ b/docs/types/function.md @@ -47,6 +47,10 @@ x(3) print // ƒ x(a){ +// console.log(a); +// } + +print(3) // 3 ```