-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
重复声明两个函数会怎样? #27
Comments
重复生命两个函数跟重复生命两个变量本质上是一样的,都是以最后一次声明为准。
改改顺序方便理解:
|
将函数名当作 “变量名”。会好理解很多。如下: 其实 function add (){} 这样声明一个函数 类似 语法糖。 将 function add (){} 转化成 var add = function (){} //先声明,后使用。这样会好理解。 所以我认为 function add (){}是一种语法糖。 不过 function add (){} 和 var add = function (){} 是存在区别的,区别在于 函数声明提升 和 变量声明提 升。(使用代码来表达):
也就是 当使用 函数声明 重复声明 两个函数的时候,因为函数声明提升,会先提取到程序开始的前面,当 重复声明的时候,会取最后声明的那个函数。所以当执行函数的时候,会使用后声明的那个函数而不是先 声明的函数。 //貌似说复杂了,还没说清楚的感觉。。。 |
函数是对象,函数名相当于name属性,重复声明后者会覆盖前者 |
在支持Function.name属性的浏览器中,name便代表着具名函数的函数名,可知就是function对象的一个属性,对象是引用传递,重复声明便会指向新的物理空间。 |
The text was updated successfully, but these errors were encountered: