类中未定义的函数调用

时间:2016-07-12 14:17:13

标签: javascript angularjs typescript

我正在使用angular2和typescript,我已经定义了一个类

export class Example{

 //.../

   const self: all = this;
   functionToCall(){
      //.. Do somerthing
   }

   mainFunctionCall(){
      somepromise.then(x => self.functionToCall('url/'+ x.name ) )
   }
}

但它一直在抛出有关未定义的functionToCall的错误。

我对typescript / angular @

很新

是否存在任何阻止此更正的规则?或者在另一个方法中调用类方法的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这里不需要这样的hack,因为lambda函数捕获外部作用域的this引用。你可以简单地写一下:

const somepromise = Promise.resolve({name:"noone"});

class Example {

    functionToCall(x : string) {
        console.log(x);
    }

    mainFunctionCall() {
        somepromise.then(x => this.functionToCall('url/'+ x.name ) )
    }
}

(new Example()).mainFunctionCall();

修改更新了代码段,以包含所有详细信息。可以在typescript playground

中运行