首页 > 解决方案 > 无法在 javascript / reactjs 中获取对象的方法

问题描述

我正在使用 ReactJS,但我认为我的问题可能是一个一般的 javascript 问题。我有两个班级UrlQueryVars. 我希望Url能够调用 的所有方法QueryVars,就好像我UrlQueryVars. 所以我做了这样的事情:

export default class Url {

  constructor()
  {
    this.queryVars = new QueryVars();

    console.log(this.queryVars);
    for(let x in this.queryVars)
    {
      console.log(x); // this never gets fired
      if(typeof this.queryVars[x] == "function")
      {
        this[x] = this.queryVars[x].bind(this.queryVars);
      }
    }
  }
}

default class QueryVars {

  init()
  {
    /* do something */
  }
  getQS(key)
  {
    /* do something */
  }
  getPage(key)
  {
    /* do something */
  }
}

问题是console.log(x)不会被解雇。我无法检索this.queryVars. 我在这里做错了什么?

最终,我想为Url.constructor这些对象分配更多的对象并绑定更多的方法,这样就好像我正在实现多重继承,或者从其他类中组合一个新类。这样我就可以:

do url.getQS() instead of url.queryVars.getQS()
do url.getIP() instead of url.ip.getIP()
etc...

我上面的代码是基于我在这个问题中学到的知识: Is there a way to print all methods of an object in javascript?

标签: javascriptreactjs

解决方案


推荐阅读