在javascript中从子类回调访问主类属性

在javascript中从子类回调访问主类属性,javascript,class,object,Javascript,Class,Object,Javascript代码 我想在媒体回调函数中使用此.progressbar class CatMusicPlayer { constructor(url,playPauseBtn,progressbar,progressTime,durationTime) { this.url = url; this.playPauseBtn = playPauseBtn; this.progressbar = progressbar; this.progressTi

Javascript代码 我想在媒体回调函数中使用此.progressbar

  class CatMusicPlayer {

  constructor(url,playPauseBtn,progressbar,progressTime,durationTime) {
    this.url = url;
    this.playPauseBtn = playPauseBtn;
    this.progressbar = progressbar;
    this.progressTime = progressTime;
    this.durationTime = durationTime;

    new Media(url,null,this.logerror,function(mediaStatus){

        /*
            i want to use this.progressbar,
            but in this block "this" reffers to Media class.
            Media is kind of another class similar to CatMusicPlayer
        */

    });
  }

this
的值缓存到另一个变量,如
const\u thisMP=this
然后使用它
\u thisMP.progressbar()

或者,您甚至可以直接调用
progressbar()
,因为它是可访问的

class CatMusicPlayer {

  constructor(url,playPauseBtn,progressbar,progressTime,durationTime) {
    this.url = url;
    this.playPauseBtn = playPauseBtn;
    this.progressbar = progressbar;
    this.progressTime = progressTime;
    this.durationTime = durationTime;
    const _thisMP = this;

    new Media(url,null,this.logerror,function(mediaStatus){
       _thisMP.progressbar(); // call here

        /*
            i want to use this.progressbar,
            but in this block "this" reffers to Media class.
            Media is kind of another class similar to CatMusicPlayer
        */

    });
  }

谢谢你:)。这很简单。我刚刚开始寻找另一条出路。谢谢:)它工作得很好now@KathanShah很高兴这有帮助。
class CatMusicPlayer {

  constructor(url,playPauseBtn,progressbar,progressTime,durationTime) {
    this.url = url;
    this.playPauseBtn = playPauseBtn;
    this.progressbar = progressbar;
    this.progressTime = progressTime;
    this.durationTime = durationTime;
    let self = this;
    new Media(url,null,this.logerror,function(mediaStatus){
       self.progressbar();


    });
  }