首页 web前端 js教程 有关js的变量作用域和this指针的讨论_javascript技巧

有关js的变量作用域和this指针的讨论_javascript技巧

May 16, 2016 pm 06:13 PM
this指针 变量作用域

一、变量作用域:[P71]

这一句话说的非常精辟:“在ECMAScript中,只有两种执行环境,全局环境和函数环境,每个函数都是一个执行环境,包括嵌套函数。换句话说,其他情况下即使变量声明在一对大括号中,在括号外部仍然可以访问这些变量”。以下给出例子:
复制代码 代码如下:

for(var i=0; ivar num = 20; // 在for语句中声明的变量
}
alert(num); // 在for语句外部调用变量,仍然可以得到num的值

对异常语句也同样可以:
复制代码 代码如下:

try {
var num = 20; // 在try语句中声明的变量
a = b; // 引起一个异常
} catch(e) {
alert(num); // 在catch语句中调用变量,将得到20
} finally {
alert(num); // 在finally语句中调用变量,将得到20
}
alert(num); // 在try语句外部调用变量,将得到20

除了上面所演示的这两种语句外,一对大括号也无法构成一个执行环境,例如:
复制代码 代码如下:

{ var num = 1;3 }

二、this指针:[P83]

在这里列出this在ECMAScript中的不同含义:

(1) 在全局执行环境中使用this,表示Global对象,在浏览器中就是window对象。

(2) 当在函数执行环境中使用this时,情况就有些复杂了。如果函数没有明显的作为非window对象的属性,而只是定义了函数,不管这个函数是不是定义在另一个函数中,这个函数中的this仍然表示window对象。如果函数显示地作为一个非window对象的属性,那么函数中的this就代表这个对象。(当然可以使用apply或者call函数来取代默认this的引用,详见[P88])

(3) 当通过new运算符来调用函数时,函数被当做一个构造函数,this指向构造函数创建出来的对象。
参考:
《JavaScript基础与案例开发详解》清华大学出版社
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP 函数的变量作用域是如何确定的? PHP 函数的变量作用域是如何确定的? Apr 16, 2024 pm 04:51 PM

PHP 函数的变量作用域是如何确定的?

深入理解 Golang 函数生命周期与变量作用域 深入理解 Golang 函数生命周期与变量作用域 Apr 19, 2024 am 11:42 AM

深入理解 Golang 函数生命周期与变量作用域

Go语言中的变量作用域与生命周期 Go语言中的变量作用域与生命周期 Jun 01, 2023 pm 12:31 PM

Go语言中的变量作用域与生命周期

PHP 5.6变量作用域:如何使用static关键字定义静态变量 PHP 5.6变量作用域:如何使用static关键字定义静态变量 Jul 30, 2023 pm 11:02 PM

PHP 5.6变量作用域:如何使用static关键字定义静态变量

Golang函数如何定义变量作用域? Golang函数如何定义变量作用域? Apr 11, 2024 pm 12:27 PM

Golang函数如何定义变量作用域?

如何在PHP中使用变量 如何在PHP中使用变量 May 20, 2023 pm 02:33 PM

如何在PHP中使用变量

Golang函数的变量作用域讲解 Golang函数的变量作用域讲解 May 18, 2023 am 10:30 AM

Golang函数的变量作用域讲解

Golang函数的变量作用域是什么 Golang函数的变量作用域是什么 Dec 22, 2023 pm 02:39 PM

Golang函数的变量作用域是什么

See all articles