1.前言 在JavaScript中,this的指向一直是大多数初学者的易错点,总是搞不清楚this到底指向谁,而在求职面试中,this的指向问题往往又是高频考点.本篇博文就来总结一下在JavaScript中不同情况下this到底指向谁. 2.热身一下 首先,我们先来看看下面的代码,请问,下面这段代码运行后会在控制台输出什么?如果你能马上回答出程序输出的结果,那么你已经很清楚this的指向了,不用再往下看了. var bar = 2; var obj = { bar: 1, foo: functi…
其实js的this指向很简单.我们记住下面3种情况. this 指向的是浏览器中的window.代码如下: function fn(){ this.name='yangkun'; this.age=28; } 当我们执行fn()的时候,这个普通函数中的this指向到底是什么?答案就是指向的是浏览器中的window.(这里说明,这里实在浏览器下,如果是node环境不是). 如果这个时候我们对上面的函数进行进一步操作: function fn(){ this.name='yangkun'; this…
关于this的指向,是一个令人很头疼的问题.但是,你运气好,碰到了我.老夫这儿有本祖传秘籍,看懂这个,妈妈再也不用担心你的this指向不对啦! 归根结底,this指向就一句话:谁最终调用函数,this指向谁!!! 关于这点,老夫有三言相赠: ① this指向的,永远只可能是对象! ② this指向谁,永远不取决于this写在哪!而是取决于函数在哪调用. ③ this指向的对象,我们称之为函数的上下文context,也叫函数的调用者. 下面,请看具体情况. ① 通过函数名(…
this指向调用它的对象 首先要明确,this指向调用方,谁调用,this指向谁. 直接调用 举个栗子: var test = 'window' ; function testThis () { var test = 'inner'; this.test = 'test change'; console.log(this.test) } testThis(); // test change console.log(window.test) // test change 在chrome中执行后可以…
Groovy in Action(中文版)第136页明确说Closure的this指向Closure自己.并且从代码注释处作者也是这样理解的: class Mother{ int field = 1 int foo(){ return 2 } Closure birth(param){ def local = 3 def closure = { caller-> [ this, …
this 的指向,是在调用函数时根据执行上下文所动态确定的. 在函数体中,简单调用该函数时(非显式/隐式绑定下),严格模式下 this 绑定到 undefined,否则绑定到全局对象 window/global; 一般构造函数 new 调用,绑定到新创建的对象上; 一般由 call/apply/bind 方法显式调用,绑定到指定参数的对象上; 一般由上下文对象调用,绑定在该对象上; 箭头函数中,根据外层上下文绑定的 this 决定 this 指向. 例题组合 1:全局环境下的 this 函数在浏…