Skip to content

Commit aa26f6d

Browse files
committed
docs(types/function): edit 函数提升
1 parent 5b3c5da commit aa26f6d

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

docs/types/function.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,9 @@ f();
186186
f = function () {};
187187
```
188188

189-
上面代码第二行,调用`f`的时候,`f`只是被声明了,还没有被赋值,等于`undefined`,所以会报错。因此,如果同时采用`function`命令和赋值语句声明同一个函数,调用函数的位置如果在顶部,会采用声明语句,调用函数的位置在赋值语句后面,就会采用赋值语句的定义。
189+
上面代码第二行,调用`f`的时候,`f`只是被声明了,还没有被赋值,等于`undefined`,所以会报错。
190+
191+
注意,如果像下面例子那样,采用`function`命令和`var`赋值语句声明同一个函数,由于存在函数提升,最后会采用`var`赋值语句的定义。
190192

191193
```javascript
192194
var f = function () {
@@ -200,6 +202,8 @@ function f() {
200202
f() // 1
201203
```
202204

205+
上面例子中,表面上后面声明的函数`f`,应该覆盖前面的`var`赋值语句,但是由于存在函数提升,实际上正好反过来。
206+
203207
## 函数的属性和方法
204208

205209
### name 属性

0 commit comments

Comments
 (0)