美文网首页
JavaScript干货分享—-this指向

JavaScript干货分享—-this指向

作者: 锤子技术 | 来源:发表于2020-06-16 21:24 被阅读0次

平时用this有些混乱,所以写个总结。

没有箭头函数之前,我们说this就是函数运行时所在的环境对象,但是在箭头函数中this就是定义时所在的对象,先说大家熟知的:函数运行时所在的环境对象。
1、作为函数调用,this指向全局对象


2、作为对象的方法调用,该对象即为调用上下文,this指向该对象。


3、作为构造函数调用,构造函数试图初始化这个新创建的对象,并将这个对象作为其调用上下文,this 指向这个新创建的对象。


4、通过函数的call/apply方法间接调用, call/apply方法的第一个参数是调用上下文,在函数体内,通过this获得对它的引用。


箭头函数中this对象就是定义时所在的作用域,也就是说箭头函数本身没有this,内部的this就是外层代码块作用域中的this。
5、独立函数


该箭头函数在全局环境中定义,即this指向window
6、对象的方法


6.png

如上所示,foo在全局中定义,所以this指向window,那么如何使this指向obj?
根据上一篇介绍,当函数作为对象的方法调用时this指向该对象,可以这样改写:


func在foo调用时定义,此时的foo所在作用域为obj,因此this指向obj
7、构造函数,因箭头函数没有this,固不能用作构造函数,否则会报错


8、bind/call


如上:func定义在全局,因此打印0,同对象方法,我们可以通过如下改写,打印出1


更多前端开发干货获取
免费获取【30G从入门到精通前端学习文档】
免费获取【50本前端系列电子书教程】
或:关注、转发、私信回复“1”即可获取免费下载地址

★★或添加扫描QQ:990179203 ★★



相关文章

  • JavaScript干货分享—-this指向

    平时用this有些混乱,所以写个总结。 没有箭头函数之前,我们说this就是函数运行时所在的环境对象,但是在箭头函...

  • javascript this 指向

    我在文章《javascript 执行上下文》中介绍了 javascript 代码在执行时,会相应地创建对应执行上下...

  • javascript this指向

    首页,js默认的对象是Window,调用一个函数是,如果不去改变它的调用对象的话,this基本上都会指向Windo...

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

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

  • JavaScript的this

    这次分享将简单的解释下JavaScript中的this的指向问题大家在学习和使用JavaScript的过程中,不可...

  • 10本 JavaScript PDF 书籍免费分享

    极力推荐文章:欢迎收藏Android 干货分享 本篇文章主要分享以下JavaScript开发PDF书籍 一、Jav...

  • JavaScript_this指向

    this的指向是在函数执行的时候确定的;同一个函数由于调用的方式不同,this的指向也会发生变化; this的几种...

  • JavaScript this的指向

    在 JavaScript 中 this 取什么值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了,因为...

  • JavaScript--this指向

    this存在的场景1)作为普通函数中的this2)使用call apply bind3)作为对象方法被调用4)在c...

  • JavaScript之this指向

    this 实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。 this绑定规则: 默认绑定,...

网友评论

      本文标题:JavaScript干货分享—-this指向

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