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

现在我在一个文件中有以下内容,并且想将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.jsfunctions/clock.js


慕少森
浏览 66回答 1
1回答

Smart猫小萌

看到您的导出,您似乎正在导出一个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;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript