diff --git a/docs/types/function.md b/docs/types/function.md index c87b266..cb028b4 100644 --- a/docs/types/function.md +++ b/docs/types/function.md @@ -186,7 +186,9 @@ f(); f = function () {}; ``` -上面代码第二行,调用`f`的时候,`f`只是被声明了,还没有被赋值,等于`undefined`,所以会报错。因此,如果同时采用`function`命令和赋值语句声明同一个函数,调用函数的位置如果在顶部,会采用声明语句,调用函数的位置在赋值语句后面,就会采用赋值语句的定义。 +上面代码第二行,调用`f`的时候,`f`只是被声明了,还没有被赋值,等于`undefined`,所以会报错。 + +注意,如果像下面例子那样,采用`function`命令和`var`赋值语句声明同一个函数,由于存在函数提升,最后会采用`var`赋值语句的定义。 ```javascript var f = function () { @@ -200,6 +202,8 @@ function f() { f() // 1 ``` +上面例子中,表面上后面声明的函数`f`,应该覆盖前面的`var`赋值语句,但是由于存在函数提升,实际上正好反过来。 + ## 函数的属性和方法 ### name 属性