100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 有关js的变量作用域和this指针的讨论【javascript】

有关js的变量作用域和this指针的讨论【javascript】

时间:2023-09-04 08:24:18

相关推荐

有关js的变量作用域和this指针的讨论【javascript】

web前端|js教程

变量作用域,this指针

web前端-js教程

A、变量作用域:[P71]

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

全球农场源码,苹果vscode安装教程,ubuntu 右键 排序,tomcat里html文件,session爬虫,php调用com组件,seo竞争对手数据,生鲜全套网站源码,市调生鲜模板lzw

for(var i=0; i<5; i++) {

var num = 20; // 在for语句中声明的变量

}

alert(num); // 在for语句外部调用变量,仍然可以得到num的值

对异常语句也同样可以:

android网游源码修改,vscode函数用法,ubuntu custo,tomcat 停止应用,sqlite3测试,jquery 评论回复插件,前端vue框架的搭建6,花里面有爬虫吗,php 转换ascii,沈阳快速seo排名,制作旅游网站的素材,婚纱摄影网页设计说明书,vs网站模板下载lzw

try {

var num = 20; // 在try语句中声明的变量

a = b; // 引起一个异常

} catch(e) {

alert(num); // 在catch语句中调用变量,将得到20

} finally {

alert(num); // 在finally语句中调用变量,将得到20

}

alert(num); // 在try语句外部调用变量,将得到20

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

dnf内存搜索工具源码,ubuntu更改运行级别,tomcat8参数配置,python爬虫兵器,uniapp php商城源码,网站seo综合找行者SEOlzw

{ var num = 1;3 }

B、this指针:[P83]

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

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

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

(3) 当通过new运算符来调用函数时,函数被当做一个构造函数,this指向构造函数创建出来的对象。

参考:

《JavaScript基础与案例开发详解》清华大学出版社

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。