[英]Can't instantiate object in javascript (node.js)
嗨,有人可以告诉我为什么我不能实例化以下类/对象吗?
function Arbitrage(odds1, odds2, investment)
{
this.investment = investment;
this.odds1 = odds1;
this.odds2 = odds2;
this.arbPercent = function() {
return 1.0/this.odds1 + 1.0/this.odds2;
};
this.profit = function() {
return this.investment / this.arbPercent() - this.investment;
};
this.individualBets = function() {
return {
odds1bet : this.investment/this.odds1/this.arbPercent(),
odds2bet : this.investment/this.odds2/this.arbPercent()
};
};
};
module.exports = Arbitrage;
我这样称呼它:
var utility = require('../businesslogic/utility');
...
router.post('/calculate', function(req, res)
{
var arbit = new utility.Arbitrage(req.body.odds1, req.body.odds2, req.body.investment);
res.json({
arbPercentage : arbit.arbPercent(),
profit : arbit.Profit(),
indvBets : arbit.individualBets()
});
});
第一行var arbit = new utility.Arbitrage(...)
错误。 它说TypeError: undefined is not a function
我检查过该utility
不为null或类似的东西。 同样,所有构造函数参数都可以。
我对javascript不太熟悉,不胜感激。 谢谢。
您将直接导出Arbitrage
类,因此在需要后
var utility = require('../businesslogic/utility');
utility
实际上是您的Arbitrage
类,这意味着typeof utility === 'function'
。
我可以看到两种修复方法。
1.更改Arbitrage
课程的要求:
var Arbitrage = require('../businesslogic/utility');
// ...
var arbit = new Arbitrage(...);
2.或更改导出方式:
exports.Arbitrage = Arbitrage;
这是因为您导出它的方式
您应该使用:
module.exports.Arbitrage = Arbitrage;
然后您可以像这样实例化:
var Arbitrage = require('../businesslogic/utility');
var varbitrage = new Arbitrage();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.