【问题标题】:Cannot access class method through a proxy object无法通过代理对象访问类方法
【发布时间】:2020-08-26 13:19:49
【问题描述】:

就像标题中我无法通过代理对象访问类方法一样,我得到了错误

TypeError: sth.getNumber is not a function

但在我看到它被像属性一样访问之前,因为我在终端中看到“get”日志

我真的不知道为什么会这样。 下面是我想要做的简化示例。 在此先感谢您的帮助

class mockClass {
  sth?: number
  constructor(n?: number) {
    this.sth = n
  }
  public getNumber(n: number) {
    return n
  }
}

const sth = new Proxy<any>(new mockClass(15), {
  apply: function (target, thisArg, argArr) {
    console.log("apply")
    console.log(target, thisArg, argArr)
    return "a"
  },
  get: function (target, reciver) {
    console.log("get")
    console.log(target, reciver)
    return "b"
  },
})

console.log(sth.getNumber(15))

【问题讨论】:

  • 您正在从Proxy 返回字符串“b”。 "b" 确实不是函数。

标签: javascript node.js typescript


【解决方案1】:

变化:

get: function (target, reciver) {
    console.log("get")
    console.log(target, reciver)
    return "b"
  },

收件人:

get: function (target, reciver) {
    console.log("get")
    console.log(target, reciver)
    return () => { return "b"}
  },

【讨论】:

猜你喜欢
  • 2016-01-16
  • 1970-01-01
  • 2016-06-30
  • 2020-08-15
  • 2013-05-03
  • 1970-01-01
  • 2021-03-17
  • 2018-05-15
  • 1970-01-01
相关资源
最近更新 更多