无法在javascript / reactjs中获取对象的方法

时间:2018-08-15 17:30:21

标签: javascript reactjs

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

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?

0 个答案:

没有答案