通过引用在javascript中定义事件处理程序的范围

毁灭性的

我想从一个类中调用一个类函数,该类函数我之前已附加到驻留在该类中的按钮对象上(以下代码有效,但callMyClassFunction中的作用域位于按钮上,并且我希望它是Carousel):

//Examplecode 1
Carousel.prototype.addEventListeners = function(){
    this.button.on('click', this.callMyClassFunction);
}

Carousel.prototype.callMyClassFunction = function(){
    console.log(this);
}

如果我像这样绑定函数,它就会起作用(它的范围是类实例):

//Examplecode 2
Carousel.prototype.addEventListeners = function(){
    this.button.on('click', function(){
        this.callMyClassFunction()
    }).bind(this);
}

但是我宁愿为click-eventlistener添加一个引用(例如在Examplecode 1中),因为我想在另一个函数中调用removeListener:

//Examplecode 3
Carousel.prototype.removeEventListeners = function(condition){
    if(condition){
        this.button.removeListener('click', this.callMyClassFunction);
    }
}

任何帮助深表感谢!

贝吉

只需将绑定的侦听器存储在您的实例上:

functin Carousel(…) {
    this.callMyClassFunction = this.callMyClassFunction.bind(this);
}
Carousel.prototype.callMyClassFunction = function(){
    console.log(this);
};
Carousel.prototype.addEventListeners = function(){
    this.button.on('click', this.callMyClassFunction);
};
Carousel.prototype.removeEventListeners = function(…){
    this.button.removeListener('click', this.callMyClassFunction);
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

范围滑块事件处理程序Javascript

来自分类Dev

事件处理程序中的jQuery'this'范围

来自分类Dev

在事件处理程序中引用`this` vue组件

来自分类Dev

JavaScript中的事件处理程序

来自分类Dev

VB.NET 通过引用调用事件处理程序

来自分类Dev

ExtJs 6.0-Ext.application中的Javascript事件处理程序功能范围

来自分类Dev

通过iOS锁定屏幕在应用程序中自定义远程事件处理

来自分类Dev

如何使用JavaScript OOP在附加的事件处理程序中引用“真实的”?

来自分类Dev

如何使用JavaScript OOP在附加的事件处理程序中引用“真实的”?

来自分类Dev

事件循环如何处理JavaScript中的事件处理程序?

来自分类Dev

事件循环如何处理JavaScript中的事件处理程序?

来自分类Dev

Titanium JavaScript事件处理程序和类范围

来自分类Dev

在Angular指令中更改事件处理程序中的范围

来自分类Dev

处理程序中的javascript remove事件,

来自分类Dev

获取事件处理程序中对React组件的引用

来自分类Dev

Aframe组件无法从事件处理程序中引用el

来自分类Dev

您可以从自定义的Kentico全局事件处理程序中执行javascript吗?

来自分类Dev

通过引用在C中传递指针

来自分类Dev

如何引用在子类中定义的枚举

来自分类Dev

引用在函数范围内定义的类

来自分类Dev

是否可以引用在另一个应用程序中定义的模型?

来自分类Dev

事件发生后调用在多个javascript文件中处理的函数

来自分类Dev

在事件处理程序中调用自定义钩子

来自分类Dev

在React组件事件处理程序中未定义“ this”

来自分类Dev

在一个事件处理程序中引用变量,在另一个事件处理程序中

来自分类Dev

命名事件处理程序是否比JavaScript中的匿名事件处理程序消耗更多的内存?

来自分类Dev

动态添加的事件处理程序会禁用Javascript中的上一个事件处理程序

来自分类Dev

订阅事件处理程序以引用为空

来自分类Dev

JavaScript:使用引用函数时,在偶数处理程序中获取$(this)

Related 相关文章

  1. 1

    范围滑块事件处理程序Javascript

  2. 2

    事件处理程序中的jQuery'this'范围

  3. 3

    在事件处理程序中引用`this` vue组件

  4. 4

    JavaScript中的事件处理程序

  5. 5

    VB.NET 通过引用调用事件处理程序

  6. 6

    ExtJs 6.0-Ext.application中的Javascript事件处理程序功能范围

  7. 7

    通过iOS锁定屏幕在应用程序中自定义远程事件处理

  8. 8

    如何使用JavaScript OOP在附加的事件处理程序中引用“真实的”?

  9. 9

    如何使用JavaScript OOP在附加的事件处理程序中引用“真实的”?

  10. 10

    事件循环如何处理JavaScript中的事件处理程序?

  11. 11

    事件循环如何处理JavaScript中的事件处理程序?

  12. 12

    Titanium JavaScript事件处理程序和类范围

  13. 13

    在Angular指令中更改事件处理程序中的范围

  14. 14

    处理程序中的javascript remove事件,

  15. 15

    获取事件处理程序中对React组件的引用

  16. 16

    Aframe组件无法从事件处理程序中引用el

  17. 17

    您可以从自定义的Kentico全局事件处理程序中执行javascript吗?

  18. 18

    通过引用在C中传递指针

  19. 19

    如何引用在子类中定义的枚举

  20. 20

    引用在函数范围内定义的类

  21. 21

    是否可以引用在另一个应用程序中定义的模型?

  22. 22

    事件发生后调用在多个javascript文件中处理的函数

  23. 23

    在事件处理程序中调用自定义钩子

  24. 24

    在React组件事件处理程序中未定义“ this”

  25. 25

    在一个事件处理程序中引用变量,在另一个事件处理程序中

  26. 26

    命名事件处理程序是否比JavaScript中的匿名事件处理程序消耗更多的内存?

  27. 27

    动态添加的事件处理程序会禁用Javascript中的上一个事件处理程序

  28. 28

    订阅事件处理程序以引用为空

  29. 29

    JavaScript:使用引用函数时,在偶数处理程序中获取$(this)

热门标签

归档