Javascript 正在丢失事件侦听器的此作用域
因此,我有一个类声明,在构造函数中,我想在窗口滚动时添加一个事件侦听器。大概是这样的:Javascript 正在丢失事件侦听器的此作用域,javascript,Javascript,因此,我有一个类声明,在构造函数中,我想在窗口滚动时添加一个事件侦听器。大概是这样的: class MyClass { constructor(el, options) { // (...) initiating this properties and methods $window.on('scroll', this.onScroll); } 当我添加我的事件侦听器时,我丢失了onScroll创建自己的this实例的this作用域,但是如果我使
class MyClass {
constructor(el, options) {
// (...) initiating this properties and methods
$window.on('scroll', this.onScroll);
}
当我添加我的事件侦听器时,我丢失了onScroll创建自己的this实例的this作用域,但是如果我使用$window.on'scroll',=>this.scroll;我把我的手表放在这个范围内。有没有办法保留我的作用域而不使用箭头功能?您可以使用。它返回附加到给定上下文的函数
class MyClass {
constructor(el, options) {
$window.on('scroll', this.onScroll.bind(this));
}
}
你可以用。它返回附加到给定上下文的函数
class MyClass {
constructor(el, options) {
$window.on('scroll', this.onScroll.bind(this));
}
}
按如下方式操作:
class MyClass {
constructor(el, options) {
$window.on('scroll', this.onScroll.bind(this));
}
}
或者只需修改定义onScroll函数的方式:
this.onScroll = () => { ... }
按如下方式操作:
class MyClass {
constructor(el, options) {
$window.on('scroll', this.onScroll.bind(this));
}
}
或者只需修改定义onScroll函数的方式:
this.onScroll = () => { ... }