如何在静态对象中调用类函数?

时间:2017-03-01 09:09:19

标签: angular typescript

这是一个例子:

export class cls1{
  str1:string;

  constructor(s:string){
    this.str1 = s;
  }

  func1(){
    return "hello " + this.str1;
  }
}

export class AppComponent  {

static obj2:cls1= JSON.parse(`{"str1":"efgh"}`);

AppComponent.obj2.func1(); //  func1 is not a function
}

问题是函数成员对静态对象不熟悉。 我收到错误:func1不是函数

1 个答案:

答案 0 :(得分:0)

你到底想要做什么?这看起来不像我能想到的任何用例。或者你只是搞乱,尝试打字稿的东西?一个函数如何从一个只包含一个对象的JSON.parse调用中神奇地出现:)?

无论如何,我能想出的最接近的功能是将代码更改为:

class cls1{
  str1:string;

  constructor(s:string){
    this.str1 = s;
  }

  func1(){
    alert(this.str1);
  }
}

class AppComponent  {

   static obj2:cls1= new cls1(JSON.parse('{"str1":"efgh"}').str1);
}

AppComponent.obj2.func1(); // alert: 'efgh'

jsFiddle

让我们暂时忽略编码风格错误,并在你的路上:)