jQuery 函数回调在自定义中不起作用 class/object

jQuery function callback does not work in custom class/object

我是编程新手,如果这是一个新手问题,请原谅。我正在创建一个简单的波浪效果来创造一种流动的水的错觉。我使用 jquery 中的一个简单函数完成了此操作,并且运行良好。我正在学习 OOP,因此我的代码对于我正在从事的这个项目更有条理。我创建了一个 class 来处理这个动画。动画有效,但只触发一次。我需要它不断开火来制造幻觉。函数回调以正常的程序方式工作,但它似乎在对象 class 中不起作用。我已经对此进行了研究并对此进行了研究,但找不到针对此特定问题的答案。任何帮助将非常感激。我的代码如下。

    function Waves(selector){
      this.selector = selector;
      this.animateWaves = function(forward,backward,speed){
        $(selector).velocity({translateX: forward},speed); 
        $(selector).velocity({translateX: backward},speed,animateWaves);
      };
    };
   var surfaceWaves = new Waves('#topWaves');
   surfaceWaves.animateWaves('+=40','-=40','1000');

编辑 实际上,我的第一个解决方案不起作用,因为回调的上下文是元素,而不是对象。这是工作代码和 jsfiddle:

function Waves(selector){
  this.selector = selector;
  this.animateWaves = function(forward,backward,speed){
    var self = this; 
    $(selector).velocity({translateX: forward},speed); 
      $(selector).velocity({translateX: backward}, speed, function () {
          self.animateWaves(forward,backward,speed);
      });
  };
};
var surfaceWaves = new Waves('#topWaves');
surfaceWaves.animateWaves('+=40','-=40','1000');

删除旧代码不正确的代码