js中this关键字的指向问题

原创 2015年11月19日 13:55:05

1.this关键字

this 是一个关键字,不同于普通变量,我们不能对它进行赋值等操作,但是我们可以通过call、apply方法和with语句有意识地让它指向某个对象。


2.表层分析

全局函数中

非严格模式下,this指向window对象,而严格模式下则为undefined

对象方法中

此时this指向该对象

构造函数中

此时this指向实例对象

3.实质

以前都是按2中的方法去强行记忆的,知道看到这样一句话——“this始终说明当前方法属于谁”,顿觉豁然开朗。

全局函数

全局函数本身是全局对象window的方法,故此时this指向于window

对象方法

此时指向该方法的父对象

构造函数

这里可能有点费解,但是我们可以把new关键字的操作顺序分解成如下步骤:
a.创建新对象;
b.将构造函数添加成该新对象的方法并执行(这里可以理解为调用了call/apply方法);
c.将构造函数的prototype属性添加到新对象的__proto__属性中

如此一来,感觉脉络一下子清晰了~

版权声明:本文为博主原创文章,未经博主允许不得转载。

nodejs中this关键字的问题

再分析具体内容之前,必须要好好阅读以下以下两篇blog 学习Javascript闭包(closure) Javascript的this用法 这两篇文章是阮一峰老师对Javascript的闭包和this...
  • paladinosment
  • paladinosment
  • 2015年03月20日 17:40
  • 2177

更新一个js中的this的四个指代对象,作为学习笔记

9/22/2016 北京天气开始有点不友好 今天被一个判断语句卡了一上午, if(this.props.percent===100) 这里是取不到我想要的percent值的,因为this目前是指代co...
  • baidu_30846837
  • baidu_30846837
  • 2016年09月22日 15:10
  • 447

js中this指向问题实例详解

JS中, this的值到底是什么? 几个月之前, 拜读了《javascript语言精髓》, 里面对于这个问题, 做出了很好的解释…JS中, this的值取决于调用的模式, 而JS中共有4中调用模式: ...
  • babybk
  • babybk
  • 2016年04月28日 11:08
  • 1937

JavaScript中this关键字含义及其最佳实践(一)

在JavaScript中this关键字非常灵活, 在不同的情况下有不同的含义. 对于初学者来说 比较难以掌握, 即使是有经验的开发人员, 亦容易犯错. Google 一下 understanding ...
  • FuDesign2008
  • FuDesign2008
  • 2014年01月18日 21:21
  • 2103

如何理解JS中的this指向问题

如何理解JS中的this指向问题this中的最终指向的是那个调用它的函数(一定要记住这句话,但是这句话仍然有问题,下文会做解释) this在函数式编程和面向对象编程的过程中,能帮助简化我们的代码,...
  • sinat_36422236
  • sinat_36422236
  • 2016年10月22日 13:52
  • 850

js中this关键字的指向

在函数执行时,this总是指向调用该函数的对象,有调用对象则指向该对象,无调用对象则指向全局对象window。1.元素button点击事件函数btn.onclick = function (event...
  • azirong
  • azirong
  • 2017年07月03日 21:17
  • 72

彻底弄懂js中的this指向

js中的this指向十分重要,了解js中this指向是每一个学习js的人必学的知识点,今天没事,正好总结了js中this的常见用法,喜欢的可以看看: 全局环境中this指向window。 有以下几种...
  • qq_33988065
  • qq_33988065
  • 2017年04月03日 11:19
  • 5488

JS:this关键字的指向

关于this的指向有两点判断原则: 当函数被直接调用时this指向全局对象(window)。 当函数被当作某个对象的方法来调用时(即通过“.”或“[]”来调用时),this指向该对象(调用方法的...
  • u010200222
  • u010200222
  • 2015年05月10日 17:38
  • 248

JavaScript中的this关键字使用的四种调用模式

this关键字本意:这个、这里的意思.在JavaScript中是指每一个方法或函数都会有一个this对象,this对象是方法(或函数)在执行时的那个环境,也可以说是这个函数在那个作用域下运行的一共有四...
  • itpinpai
  • itpinpai
  • 2016年03月29日 11:16
  • 2295

js闭包中this的指向问题及三种解决方法

下面是一个问题,对象方法中定义的子函数,子函数执行时this指向哪里? 三个问题:     (1)以下代码中打印的this是个什么对象?     (2)这段代码能否实现使myNumber.val...
  • qq_21794603
  • qq_21794603
  • 2017年05月11日 22:37
  • 984
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js中this关键字的指向问题
举报原因:
原因补充:

(最多只允许输入30个字)