如何在jQuery回调中访问“ this”作用域和私有方法?

时间:2019-03-26 20:33:52

标签: typescript

请考虑以下代码。在点击回调中,我尝试访问color的{​​{1}} css属性。同时,我需要调用私有方法this,这只能通过使用setResponsiveClass来实现。该代码显然不会编译,因为this.setResponsiveClass的作用域是事件处理程序。

this

answer提供了实现事件范围(通过保留当前代码)或类范围(通过转换为粗箭头语法)的方法。

如何在同一函数中从事件范围和私有方法访问class SomeClass { constructor { $('.someclass').on('click', function() { var color = $(this).css('color'); console.log(color); this.setResponsiveClass(); }); } private setResponsiveClass() { console.log('hello') } }

1 个答案:

答案 0 :(得分:1)

您可以通过这种方式触发

解决方案1。

class SomeClass {
  constructor {    
    $('.someclass').on('click', = () => {

      var color = $(this).css('color');
      console.log(color);          

      this.setResponsiveClass();
    });
 }        

  private setResponsiveClass() {
    console.log('hello')
  }
} 

解决方案2。

class SomeClass {
  constructor {    

    var self = this;  <====

    $('.someclass').on('click', function() {

      var color = $(this).css('color');
      console.log(color);          

      self.setResponsiveClass();  <====
    });
 }        

  private setResponsiveClass() {
    console.log('hello')
  }
} 

我希望这对您有帮助