为了账号安全,请及时绑定邮箱和手机立即绑定

如何将半班级移动到自己的文件中?

如何将半班级移动到自己的文件中?

慕少森 2022-12-08 15:28:16
现在我在一个文件中有以下内容,并且想将Clock函数/类移动到它自己的文件中。我不知道该怎么称呼它,因为我认为它是一个函数,但具有一些类功能。如果我改变var Clock = function(options) {至module.exports = (options) => {接着var Clock = require('./functions/clock') var timer = new Clock({delay: options.checkInterval});然后我得到TypeError: Clock is not a constructor问题有谁知道如何将这个函数移动到它自己的文件中,所以我有index.js和functions/clock.js?
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

看到您的导出,您似乎正在导出一个arrow function,不幸的是,我们不能使用箭头函数进行constructor调用(即我们不能new与它们一起使用),因为它们没有[[Construct]]方法。因此,prototype箭头函数也不存在该属性。


所以只需将箭头功能更改为正常功能即可。


var Clock = function(options) {

  var timer, offset, clock, interval


  options = options || {}

  options.delay = options.delay || 1000


  reset()


  function start() {

    if (!interval) {

      offset = Date.now()

      interval = setInterval(update, options.delay)

    }

  }


  function update() {

    clock += delta()

  }


  function delta() {

    var now = Date.now(),

    d = now - offset;

    offset = now;

    return d;

  }


  function stop() {

    if (interval) {

      clearInterval(interval)

      interval = null

    }

  }


  function reset() {

    clock = 0

  }


  function read() {

    return clock

  }


  this.start = start

  this.stop  = stop

  this.reset = reset

  this.read  = read

}

  module.exports = Clock;



查看完整回答
反对 回复 2022-12-08
  • 1 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信