美文网首页
JS中this指向

JS中this指向

作者: 温室寻荒凉 | 来源:发表于2020-06-06 18:28 被阅读0次

(1)事件调用环境:谁触发事件,函数里面的this指向就是谁(某个DOM)。

(2)node全局环境:this指向module.exports

(3)浏览器全局环境:this指向window

(4)函数内部:

(4.1)函数自己调用(不是对象调用)严格模式下:undefined,非严格模式下 :this指向window

(4.2)函数被对象调用,this指向最终调用函数的对象。注意是调用时的,不是定义时的。

(4.3)构造函数中没有return语句,构造函数中的this指向的是实例对象

构造函数有return返回值,返回值类型为基本类型,构造函数中的this指向的是实例对象

构造函数有return返回值,返回值类型为引用类型,构造函数中的this指向返回值的对象

(5)箭头函数:箭头函数的上一层作用域的this

箭头函数本身是没有this和arguments的,在箭头函数中引用的this实际调用的是定义这个箭头函数的上一层作用域的this。这里强调一下是上一层作用域,因为对象是不能形成独立的作用域的。

修改this指向三种方法:

(1) call(this,a,b,c)

(2) apply(this,[a,b,c])

(3) bind(this,a,b,c)()

在定义箭头函数时已决定箭头函数中this指向,定义后想再通过call来修改函数中的this指向是做不到的,普通函数可以做到用call修改this指向。

脑图总结:

this指向

附一道经典面试题:

经典题目

相关文章

  • JS进阶篇-this指向问题

    JS中this的指向问题不同于其他语言,JS中的this不是指向定义它的位置,而是在哪里调用它就指向哪里。 JS中...

  • JS中this指向

    一、全局作用域中的thises5与es6中严格模式与非严格模式全局函数的this都指向window 二、全局作用域...

  • JS中this指向

    函数有4种调用方式,对应就有4种绑定规则:默认绑定、隐式绑定、硬绑定和构造函数绑定。 1、默认绑定 当作为普通函数...

  • js中this指向

    1.this总是指向函数的直接调用者2.如果有new关键字,this指向new出来的那个对象3.DOM事件中thi...

  • JS中this指向

    (1)事件调用环境:谁触发事件,函数里面的this指向就是谁(某个DOM)。 (2)node全局环境:this指向...

  • js中this指向

    当我们需要把函数当做另外函数参数传入时,我们使用箭头函数。 关于this的指向。 问题:箭头函数中的this是如何...

  • 关于js函数中this的指向的问题

    @(javascript)[JavaScript中this的指向] 关于js函数中this的指向的问题 javas...

  • JS中this的指向

    什么是this? 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用。 JS中this的指向,取...

  • JS中this的指向

    JS中this的指向 1.背景介绍 2.知识剖析 3.常见问题 4.解决方案 5.编码实战 6.扩展思考 7.参考...

  • JS中this的指向

    1、普通函数中this的指向( 普通函数中的this指针指向于调用者) 2、定时器中的this的指向 3、在对象...

网友评论

      本文标题:JS中this指向

      本文链接:https://www.haomeiwen.com/subject/dlpxtktx.html