20
|
Josh Lee ZZ Coder · 技术社区 · 15 年前 |
![]() |
1
4
这两个代码段在当前作用域中声明了一个名为“onload”的函数。没有绑定。
.
此代码段将函数分配给当前作用域中名为“onload”的属性/变量/字段:
Firefox执行绑定并在第一个代码段上引发onload事件,而其他人没有这样做的原因可能是因为Firefox chrome(其用户界面)本身是使用JavaScript编写和自动化的——这就是为什么它如此灵活且易于在其上编写扩展的原因。不知何故,当您声明本地作用域
|
![]() |
2
4
许多人正确地指出了两者之间的全球/本地差异( 更新:这些答案现在大部分被作者删除了 )
和
但这并没有真正回答你的具体问题,因为你实际上并没有做第一个问题。 在您的示例中,两者之间的区别是:
|
![]() |
3
1
根据Tim Down的有益评论和与Jonathan Penn的简短讨论,以下是我认为正在发生的事情:
当JavaScript解释器将
当你写声明的时候
|
![]() |
4
0
最简单的解释是:
可在声明之前使用:
但这不起作用:
|
![]() |
5
0
|
![]() |
6
-1
这将生成一个错误:
这并不是:
因此,当您使用函数模块化和组织代码时,第二种语法更好,而第一种语法更适合作为数据范例的函数。 |
![]() |
Tor · 使用Box<None>值初始化struct 3 年前 |
![]() |
Judy · 在两个JavaScript函数中更新全局变量 3 年前 |
![]() |
ask_me · Python中关于局部和全局范围的概念性问题 3 年前 |
![]() |
Astha Gupta · 闭包中的词汇作用域是如何发生的?[重复] 3 年前 |
![]() |
Empha · 从成员函数对对象所做的更改不会持续。范围/参考问题? 7 年前 |
![]() |
pag-r · Golang开关变量范围 7 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |