正在回答 回答被采纳积分+1
同学你好,不是的,这里确实没有用,但不是因为两个this指向一样导致的。之前老师说了,因为handleBtnClick方法中没有用到this,所以传递这个this没有用处。但是如果handleBtnClick中使用了this,传递this的指向就有意义了。参考如下:
1。这两个this一样,是因为它们都在bindEvents这个作用域里面。
如果不传递this指向,因为函数中的this指向函数的调用者,这里按钮绑定了点击事件,那么事件执行的函数handleBtnClick中,this就会指向按钮。
2.同学要注意的是,我们传递的this,是把bindEvents中的this指向传递给handleBtnClick。再慢慢理解一下哦。另外,还是建议同学自己把这个案例敲一遍,自己实际测试,例如不传递this和传递this输出的结果做一个比较,这样清晰了,能帮助你更好的去理解和记忆。
祝学习愉快~
同学你好,讲解$.proxy()之前,先看如下小例子:
1.为一个div绑定事件,事件中传入一个函数。当点击事件触发的时候,就会执行函数里面的内容。
因为this指向函数的调用者,所以事件函数中this指向的div元素。那么在执行greeting方法时,div没有uesename这个属性,所以输出undefined:
2. 那么在如上事件中调用greeting,想要让this指向obj,就可以使用$.proxy()方法。如下:
$.proxy() 作用如果理解不了,可以换一个理解方式,即调用obj中的greeting方法,并强制设置this的指向。此时this指向的是obj,所以能够输出obj下面的uesename :
$.proxy() 方法的语法2,和上面的例子( $("div").click($.proxy(obj, "greeting"));)使用等价:
第一个参数是调用greeting方法,第二个参数是设置this的指向 ,即让this指向obj 。
所以也可以输出名字:
3.视频中就是第一个参数调用了handleBtnClick方法,然后第二个参数把当前的this指向传递给了handleBtnClick方法。不过案例中,handleBtnClick方法中没有使用this,也可以不传递。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星