关于this的问题

关于this的问题

图片描述
老师我想问下这几个this都指向什么?为什么要用var self = this;来备份上下文?不太理解

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2022-10-25 09:57:20

同学你好,class类中this一般指向实例化后的对象,例如下面粉框中的几处:

https://img1.sycdn.imooc.com//climg/6357417d09a0e0a005170581.jpg

而点击事件中的this指向绑定事件的元素,如果用this.changeColor()

https://img1.sycdn.imooc.com//climg/635741ec097f9e0504880256.jpg

那么this指向元素this.dom,而元素上并没有changeColor方法,此方法在构造函数原型上。所以在点击事件外保存this(指向实例)给变量self,点击事件内用self调用即可。

祝学习愉快!

  • 我之前一直以为绑定事件的dom元素就是实例,我知道上下文的规则六是:事件处理函数的上下文是绑定事件的DOM元素;我是否可以理解为DOM元素也是一种“类”,比如盒子类 box . onclick ,但是实例是指具体点击的那个盒子,所以this.dom不等于this ?

    2023-09-09 16:09:54
  • 解答如下:

    1、this这个单词,可以翻译成“他(她、”。在学语文的时候,我们知道,不同语言场景下,“他(她、)”指代的内容是不一样的。比如“他”,可以指代“小张”、也可以指代“小李”。同理,同一个单词this,在不同的代码环境下,指代的内容不同。this.dom和this,虽然单词都是this,但是指代的内容可能不同,要具体场合具体分析。

    2、我们所说的“dom元素”其实就是一种实例对象,指某个具体的html元素,比如某个具体的div、id是test的span元素,等。

    一般事件会绑定在具体的html元素上,比如绑定在id是test的元素上,此时id是test的这个元素,就是dom元素(dom实例)。因此可以理解成,dom元素来自于某个类(实例来自于类)。

    2023-09-11 10:38:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师