javascript中this指针
看完此片文章豁然开朗,非常感谢。javascript技术难点(三)之this、new、apply和call详解
下面说一说自己的理解:
this指针总是指向调用他的对象,其实我更愿意理解为:this指针总是指向其最小的作用域 。
在javascript中,我们可以理解最外层的作用域是windows。
在下面的代码段中,fun1最近的作用域是windows,因此this的值是Window.
<script type="type/javascript"> function fun1(){
console.log(this);//Window
} fun1(); </script>
如果有了更小的作用域范围,则this会指向那个更小的作用域。如下面的代码,我们new出了一个Person对象,其对show()来说,相对与windows范围更小,因此this指针指向Person。
<script type="text/javascript">
function Person(){
this.show = function(){
console.log(this);// Person
}
}
var person = new Person();
person.show();
</script>
出了上面的new方法外,更改作用域范围的方法:
new(包括对象字面量定义)、call、apply
因此这三种方法可以通过改变作用域而改变this指针的指向。
javascript中this指针的更多相关文章
- javascript中this指针探讨
javascript是一门类java语言有很多跟java相类似的特点,但也仅是类似而已,真正使用中还是有很大的差别.this指针常常让很多初学者抓狂,本人也曾为此困惑不解,查找过很多资料,今天在这里总 ...
- 图说js中的this——深入理解javascript中this指针
没搞错吧!js写了那么多年,this还是会搞错!没搞错,javascript就是回搞错! ………… 文章来源自——周陆军的个人网站:http://zhoulujun.cn/zhoulujun/html ...
- javascript中this指针的认识
javascript中上下文环境就是this指针,即被调用函数所处的环境.这个上下文环境在大多数情况下指的是函数运行时封装这个函数的那个对象:当不通过任何对象单独调用一个函数时,上下文环境指的就是全局 ...
- JavaScript中this指针指向的彻底理解
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象 这一点与函数中自由变量Action-varibal不同 var ...
- 由javascript中的this指针所想到的
初次结识 this 指针,是在学 <<C++ Primer Plus>>这本书的时候(这本书勉强读了一二遍,之后转学 html+css+js了,不过这是后话). 依稀记得书中举 ...
- 深入认识JavaScript 中的this指针
深入认识JavaScript 中的this指针this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象.在实现对象的方法时,可以使用this指针来获得该对象自身的引用.和传统意义的面向对象 ...
- 彻底理解javascript中的this指针
http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/ https://www.benn ...
- <javaScript>谈谈JavaScript中的变量、指针和引用
1.变量我们可能产生这样一个疑问:编程语言中的变量到底是什么意思呢?事实上,当我们定义了一个变量a时,就是在存储器中指定了一组存储单元,并将这组存储单元命名为a.变量a的值实际上描述的是这组存储单元中 ...
- 谈谈JavaScript中的变量、指针和引用
1.变量 我们可能产生这样一个疑问:编程语言中的变量到底是什么意思呢? 事实上,当我们定义了一个变量a时,就是在存储器中指定了一组存储单元,并将这组存储单元命名为a.变量a的值实际上描述的是这组存储单 ...
随机推荐
- DOM节点
DOM的一个想法 让我们从下面的HTML开始学习吧: <html> <head> <title>The title</title> </head& ...
- zookeeper,dubbo,dubbo admin
zookeeper 1. 分布式协调服务:我们的程序运行在不同的机器上,这些机器可能位于同一个机架,同一个机房又或不同的数据中心.在这样的环境中,我们要实现协调该怎么办?那么这就是分布式协调服务要干的 ...
- iOS开发随笔
突然看到一个搞11年IT的前辈 他的简历给人焕然一新的感觉 IOS:深入理解object-c语言 内存管理(ARC,MRC, 写回传),GCD,RunLoop,RunTime,,Block,Deleg ...
- Dedecms 图片加上Alt或Title等属性写法
代码如下:$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename']; SetSysEnv($this-&g ...
- C语言----------链表的简单操作
#include <stdio.h> #include <malloc.h> typedef struct node{ //定义节点类型 char data; //数据域 st ...
- MYSQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- centos6.x开机卡死
问题描述: centos6.x开机卡死在进度条处 远程登录,查看系统日志,看看卡在哪儿 通过远程连接,tail -fn 20 /var/log/messages 发现报错: init: prefdm ...
- 【Qt学习笔记】窗口部件整理
关于Qt中窗口部件的学习 今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着 ...
- Java进行post和get传参数
http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html get和post方法 import java.io.BufferedRe ...
- js 为字符串添加样式
<html><body> <script type="text/javascript"> var txt="Hello World!& ...