合并内部回调

时间:2017-11-10 16:58:48

标签: javascript node.js

我在JavaScript中有我的OOP功能,我使用带回调的库。

代码如下:

$('body').mCustomScrollbar({
  theme: 'minimal',
  callbacks: {
    whileScrolling: function() {
      console.log(this.mcs.draggerTop);
    }
  }
});

内部回调函数(whileScrolling)我有this.mcs(由库制作)。但我无法访问我的OOP函数变量。 如果我想访问它们,我必须这样做

whileScrolling: function() {
  console.log(this.mcs.draggerTop);
}.bind(this);

如果我这样做,我可以通过它访问所有人。变量(在OOP函数上),但是我在内部回调中放弃了旧变量,所以我不再使用this.mcs.draggedTop。

有没有办法合并"这个(前一个+新的一个)?

2 个答案:

答案 0 :(得分:3)

将外部this的值分配给变量并在回调中使用该变量:

var outerThis = this;                              // the outer this
$('body').mCustomScrollbar({
    theme: 'minimal',
    callbacks: {
        whileScrolling: function() {
            // here this is the inner this
            // and outerThis is the outer this
            console.log(this.mcs.draggerTop);
        }
  }
});

答案 1 :(得分:2)

尝试

  $('body').mCustomScrollbar({
 theme: 'minimal',
 self:this,
callbacks: {
   whileScrolling: function() {
  console.log(self.localVariable);
 }
}
})