如何在 javascript es6 中传递类作用域而不是新创建的对象作用域

问题描述 投票:0回答:0

我有一个名为

pop
的类,它在 [fullcalendar][1] 创建的日历上创建弹出对话框

export default class pop {
  calendar = null;

  setCalendar() {
    this.calendar = new Calendar(document.getElementById('calendar'), {
      eventSourceSuccess: setMinMaxSlotTime,
    }
  };

  setMinMaxSlotTime(eventArray) {
    this.calendar.setOption('slotMaxTime', maxTime + ':59:59');
  }
}

这不起作用,因为当 eventSourceSuccess 被触发时,

this
指的是
Calendar
而不是
pop
,所以
this.calendar
setMinMaxSlotTime
函数中是未定义的。有没有办法告诉
setMinMaxSlotTime
使用
calendar
类变量而不是
Calendar
变量(不存在)?

注意: 我能够按如下方式进行某种解决方法,首先将

that
别名为
this
,然后将
calendar
对象传递给函数,但我觉得有更好的方法。

  setCalendar() {
    const that = this;

    this.calendar = new Calendar(document.getElementById('calendar'), {
      eventSourceSuccess(eventArray) { that.setMinMaxSlotTime(eventArray, that.calendar); },
    }
  }

  setMinMaxSlotTime(eventArray, calendar) {
    calendar.setOption('slotMaxTime', maxTime + ':59:59');
  }


  [1]: https://fullcalendar.io/
javascript ecmascript-6 fullcalendar es6-modules es6-class
© www.soinside.com 2019 - 2024. All rights reserved.