我有这段代码:
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()但我无法访问它。有人可以告诉我如何做到这一点
答案 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;它在函数内部使用。