保证你执行的函数在正确的作用域内对于现在的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变量

相关文章: