老师我想问下这几个this都指向什么?为什么要用var self = this;来备份上下文?不太理解
var self = this;
登陆购买课程后可参与讨论,去登陆吧
同学你好,class类中this一般指向实例化后的对象,例如下面粉框中的几处:
而点击事件中的this指向绑定事件的元素,如果用this.changeColor()
那么this指向元素this.dom,而元素上并没有changeColor方法,此方法在构造函数原型上。所以在点击事件外保存this(指向实例)给变量self,点击事件内用self调用即可。
祝学习愉快!
我之前一直以为绑定事件的dom元素就是实例,我知道上下文的规则六是:事件处理函数的上下文是绑定事件的DOM元素;我是否可以理解为DOM元素也是一种“类”,比如盒子类 box . onclick ,但是实例是指具体点击的那个盒子,所以this.dom不等于this ?
解答如下:
1、this这个单词,可以翻译成“他(她、它)”。在学语文的时候,我们知道,不同语言场景下,“他(她、它)”指代的内容是不一样的。比如“他”,可以指代“小张”、也可以指代“小李”。同理,同一个单词this,在不同的代码环境下,指代的内容不同。this.dom和this,虽然单词都是this,但是指代的内容可能不同,要具体场合具体分析。
2、我们所说的“dom元素”其实就是一种实例对象,指某个具体的html元素,比如某个具体的div、id是test的span元素,等。
一般事件会绑定在具体的html元素上,比如绑定在id是test的元素上,此时id是test的这个元素,就是dom元素(dom实例)。因此可以理解成,dom元素来自于某个类(实例来自于类)。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
入行前端,是明智的选择!市场需求大,就业前景好,入行门槛低,小白易上手 全新升级:技术更新,Vue3.0/TypeScript/React17.x; 技术更全面,从0基础到全栈开发再到大型项目构建
157 1
75 1
31 2
200 5
155 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星