docs(types/function): edit 函数提升

This commit is contained in:
ruanyf
2020-03-18 13:21:22 +08:00
parent 5b3c5daeff
commit aa26f6db13

View File

@@ -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 属性