保证你执行的函数在正确的作用域内对于现在的JavaScript程序员是一个艰难的任务。
我们将在本文学习一个关于JavaScript函数作用作用域的规则,以便理解如何去确定函数的作用作用域。
JavaScript 概念
- 作用域(Scope)关系到上下文中代码的执行以及决定变量是否可用;
- JavaScript有两种作用域:全局、局部;
- 全局作用域的函数与变量可以被到处使用;例如:document 与 window 变量;
- 局部作用域的函数与变量的作用域在所处定义它的函数的内部,因此,局部变量不能被定义它的函数的外部访问(但是可以被其内部的函数访问)。
JavaScript 代码
Language:JavaScript
IDE:Eclipse Java EE
//-------全局变量------------------------------------
'Hello from Global Scope!';
// alerts 'Hello from Global Scope!'
4:
function myFunction() {
// 使用全局myVar
7: }
8:
// alerts 'Hello from MyFunction!'
// alerts 'Hello from Global Scope!'
12:
// -------局部变量------------------------------------
'Hello from Global Scope!';
// alerts 'Hello from Global Scope!'
16:
function myFunction() {
// 定义局部变量
19: alert(myVar);
20: }
21:
// alerts 'Hello from MyFunction!'
// alerts 'Hello from Global Scope!'
25:
// -------this关键字代表当前代码所处的范围----------------------
function MyClass() {
this);
'Hello';
30: }
31:
new MyClass();
// alerts 'Hello'
// alerts 'undefined'
this.myProperty代表MyClass外部一层的myProperty变量