关于$.proxy()还是不太理解
mode.init($elem)
return {
// show:mode.show,
show:$.proxy(mode.show,this,$elem),
// hide:mode.hide,
hide:$.proxy(mode.hide,this,$elem)
};
网上看了一些,没太看懂,网上是这样写的。
jQuery.proxy( function, context )
/**function将要改变上下文语境的函数。
** context函数的上下文语境(`this`)会被设置成这个 object 对象。
**/
jQuery.proxy( context, name )
/**context函数的上下文语境会被设置成这个 object 对象。
**name将要改变上下文语境的函数名(这个函数必须是前一个参数 ‘context' **对象的属性)
**/
正在回答
同学你好,你的理解还是可以的。
如果没有使用$.proxy()方法,直接调用方法,如下:
那么hover方法中的this指向的就是this.$elem元素,也就是同学说的下拉菜单按钮,但是这两个方法是构造函数中的,并不是元素上的,所以需要改变this的指向。
那么$.proxy()方法中第一个参数是调用已有的函数,第二个参数是函数所在对象的名称,那么使用this,也就是当前上下文中的this:
指向的就是实例化后的Dropdown对象。
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星