首页 > 解决方案 > 如何将函数转换为类?

问题描述

我想将一个返回多个函数的函数转换为一个带有构造函数的类,该构造函数只能用new关键字调用。

我试过这个:

const toast = () => {
  return ({
    getToast: () => {
      return 'toast'
    },
    setToast: () => {
      return 'wtf'
    }
  })
}

class t {
  constructor() {}
}

const t1 = t.bind(toast())
const tt = new t1()
console.log(tt.getToast)

但它打印undefined

我也试过Object.assign(t, toast()),或者只是this = toast()在构造函数中做,但它不起作用。

标签: javascriptnode.jsecmascript-6

解决方案


我不知道你想做什么。可能你正在寻找这个。

const toast = () => {
  return ({
    getToast: () => {
      return 'toast'
    },
    setToast: () => {
      return 'wtf'
    }
  })
}

class t {
  constructor(fn) {
    return fn;
  }
}

const tt = new t(toast())
console.log(tt.getToast())
console.log(tt.setToast())


推荐阅读