我几乎是JavaScript的新手,我正在尝试访问类中的对象。这是我在一个名为analysis.po.js的文件中的类定义:
var AnalysisPage = function () {
(some code here)
this.getSpousesCreditBureau = function() {
return {
pdScore: getSpousesCreditBureauElement('pdScore'),
qualification: getSpousesCreditBureauElement('qualification'),
estimatedFee: getSpousesCreditBureauElement('estimatedFee'),
currentDebt: getSpousesCreditBureauElement('currentDebt'),
maxDebt: getSpousesCreditBureauElement('maxDebt'),
arrears: getSpousesCreditBureauElement('arrears'),
segment: getSpousesCreditBureauElement('segment'),
bpGlobalRisk: getSpousesCreditBureauElement('bpGlobalRisk'),
groupGlobalRisk: getSpousesCreditBureauElement('groupGlobalRisk')
};
};
(some other code here)
};
module.exports = new AnalysisPage();
这是我尝试在另一个名为analysis.spec.js的文件中获取对象getSpousesCreditBerauElement
的代码:
var App = require('../app.po.js'),
Util = require('../util.js'),
AnalysisPage = require('./analysis.po.js'),
AnalysisData = require('./analysis.data.js');
(some code here)
var analysis = new AnalysisPage();
Util.verifyElementsAreDisplayed(analysis.getSpousesCreditBureau());
(some other code here)
我得到的错误是: 不能打电话的方法' getSpousesCreditBureau'未定义的
答案 0 :(得分:2)
您实际上并未导出AnalysisPage
,而且您没有正确调用它。
使用以下内容导出课程:
module.exports = AnalysisPage;
比较
module.exports = new AnalysisPage();
导出该类的实例。
然后调用它的正确方法是:
var instance = new AnalysisPage();
Util.verifyElementsAreDisplayed(instance.getSpousesCreditBureau());
(原始问题已修改,代码为:)
var analysis = new AnalysisPage();
Util.verifyElementsAreDisplayed(AnalysisPage.getSpousesCreditBureau());
您只能导出实例,在这种情况下请调用它:
var instance = require('./analysis.po.js');
Util.verifyElementsAreDisplayed(instance.getSpousesCreditBureau());
所以在任何地方都没有new
。
答案 1 :(得分:1)
你有没有尝试过:
var analysis = new AnalysisPage();
Util.verifyElementsAreDisplayed(analysis.getSpousesCreditBureau());
当您访问类似AnalysisPage.getSpousesCreditBureau()
的方法时,您不是访问实例,而是访问类定义。