老师好,请问这里为什么要使用$.proxy绑定this呢?

来源:2-4 MVVM模式

charsandrew

2018-04-12

			bindEvents: function() {
				var btn = $('#btn');
				btn.on('click', $.proxy(this.handleBtnClick, this))
			}

上面为什么使用$.proxy()重新绑定this呢?  直接使用this.handleBtnClick好像也能起到效果。在后面的handleBtnClick中也没有用到this呀。 

写回答

4回答

潇洒先生fy

2018-04-13

如果不这么绑定的话,会改变this的指向,this将会指向btn这个元素。如果我们再在外面声明一个方法,在handleBtnClick中用this调用这个方法,因为this已经指向btn了,我们刚声明的方式就会找不到,调用会报错。

//img.mukewang.com/szimg/5ad09aa00001170308050603.jpg


4
0

Dell

2018-04-14

是的,你可以在这里不用this,但是用了更严谨,我的本意是这样在后面的方法中调用this,指向依然是这个实例,而不是dom元素

1
0

Dell

2018-04-13

群里给你讲了,你看懂了没?

0
1
潇洒先生fy
群里问的是我,不是她,好巧问到一个问题了,哈哈,
2018-04-13
共1条回复

Dell

2018-04-12

当次调用无所谓 再继续使用this就错了

0
0

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程