老師 視頻 07:47

老師 視頻 07:47

<div ref = {(div)=>{this.divElem = div}}

為什麼可以直接寫 this.divElem = div?

函數內沒有宣告過divElem這個變數(屬性)啊


正在回答

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

2回答

同学你好, 对于你的问题解答如下:

  1. 指的是Counter类的实例。

  2. 语法中规定,箭头函数内部默认没有this,所以会向上查找this,所以这里的this指向的是Counter类的实例。 可以在点击事件函数内部打印查看下,示例:

    http://img1.sycdn.imooc.com//climg/5f4320c7096a0d2a06580397.jpg

    在事件函数内部this指向的是Counter实例对象,这个对象下有divElem属性,也就是说箭头函数内部的divElem属性是添加到实例对象的。

    http://img1.sycdn.imooc.com//climg/5f4320ea09a329ca07970474.jpg

祝学习愉快~

好帮手慕慕子 2020-08-23 20:40:05

同学你好, 因为this指向的当前实例,所以this.divElem相当于在这个实例对象上添加一个属性,并设置属性值为div,函数内确实没有divElem这个属性,这种写法相当于添加了一个属性,不需要提前声明的。

老师在本小节的2分09s处,讲过类似的使用方法,同学可以回顾视频加深理解与记忆。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 weixin_慕雪0272820 #1
    老師你的意思是說這個this 是指Counter這個class嗎? 可是這不是在(div)=>{this.divElem = div}這個箭頭函數裡面的this嗎? 為什麼在函數裡面的this會指向當前實例? 我以為是class裡面的this才指向當前實例!
    2020-08-23 21:58:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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