问题是这样:我想写一个组件方法,方法中定义了this。当不同的按钮点击时调用这个方法,this都能指向这个按钮,然后获取到按钮的一些属性。然而事实是不管怎么调用this都指向了window,也想到调用这个方法时候把this作为参数传进去可以解决,但是总觉得不太妥。代码大概是这样子:var scale=function(){ var that=$(this); console.log(that)};$(".btn").on("click",function(){ scale();//这里想要函数中的this指向这个".btn"})
1 回答

慕虎7371278
TA贡献1802条经验 获得超4个赞
函数当做函数调用的时候, 内部 this 要么指向window, 要么是 undefinded(严格模式),
你那样写, 明显就是函数调用, 理所当然的就是指向 window 啦.
当函数被注册成事件处理器的时候, 函数内部的 this 是指向发生事件的 DOM 节点.
所以, 直接这样
$(".btn").on("click", scale)
就可以了.
也可以参考其他回答, 用 bind, call, apply 绑定 this .
添加回答
举报
0/150
提交
取消