如何在该类的另一个函数中使用在Typescript类中声明的函数?

时间:2014-07-21 09:21:21

标签: javascript typescript

我有这段代码:

class ExamPage {

  tabClear() {
    page.clear(this.examName);
    page.clear(this.examVersionId);
  }

  createNew() {
    describe('Create new' , function() {
      it('Clear input boxes', function() {
        tabClear(); // <<< not recognized 
      });
    });
  }

}

有人可以告诉我。我想调用函数tabClear()但我无法访问它。有人可以告诉我如何做到这一点

1 个答案:

答案 0 :(得分:3)

如果我们需要调用我们自己的类的功能,我们总是必须使用这个

class ExamPage {

  tabClear() {
    page.clear(this.examName);
    page.clear(this.examVersionId);
  }

  createNew() {
    describe('Create new' , function() { 
      it('Clear input boxes', function() {
        this.tabClear(); // HERE the this.tabClear() is the answer
      });
    });
  }    
}

但事实上,我们也应该使用箭头函数表示法,这将保持正确的范围:

createNew() {
    // the function () is replaced with arrow function
    describe('Create new' , () => {
      it('Clear input boxes', () => {
        this.tabClear(); // HERE the this.tabClear() is the answer
      });
    });
  } 

在此处查看有关箭头功能的更多详细信息:

小引用:

  

“箭头函数表达式是函数表达式的一种紧凑形式,它省略了函数关键字并对此进行了词法作用。”基本上,箭头函数可以帮助您自动保留某个范围。如果你看一下编译器输出的代码,它只会创建一个var _this = this;它在函数内部使用。