我有一个javascript类,其中至少有3个函数。我有一个链接,但是我想给这个链接的onclick事件添加一些逻辑。
不幸的是,它无法识别嵌套函数,可能是因为 this
还不够清楚。
class MyJsClass {
dummyFunc1() {
$('#my-link').click(function() {
console.log('test');
this.dummyFunc2();
});
}
dummyFunc2() {
console.log('dummyfunc2');
this.dummyFunc3();
}
dummyFunc3() {
console.log('dummyfunc3');
}
}
这不起作用,所以我对它做了一点这样的修改,但仍然不起作用 Cannot read property 'dummyFunc3' of undefined
:
dummyFunc1() {
var dummyfunc2 = this.dummyFunc2();
$('#my-link').click(function() {
console.log('test');
dummyfunc2();
});
}
1条答案
按热度按时间gmxoilav1#
jquery方法/函数内部(如
.click()
等)this
有自己的背景jQuery
对象示例,其中this
是返回的dom元素。改用箭头函数
=>
因为它没有自己的绑定到this
-因此制造this
请参阅所需的类示例:1.使用箭头功能
2.使用function.prototype.bind
如果需要,还有不推荐的$.proxy:
jQuery3.3中的哪个可以更好地与js的function.prototype.bind结合使用