不能在javascript (node.js)中实例化对象
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();
相关文章:
- 在requirejs中共享实例化对象
- 在 Typescript 中实例化对象,遵循松散耦合
- 用javascript在实例方法中实例化对象
- ThreeJS:实例化对象会将其位置设置为零
- Javascript prototypíng 和实例化对象的“this”
- 如何在 JavaScript 中实例化对象链
- 存储对通讯簿应用的实例化对象的引用
- 我想在实例化对象时返回 false
- 将用户单击绑定到实例化对象
- 绑定到类外部按钮的公共属性与实例化对象时内部绑定的按钮的值不同
- 在Backbone,js中实例化对象与函数
- 我如何在JS中动态地要求模块、实例化对象和调用函数
- 如何实例化对象文字
- 不能在javascript (node.js)中实例化对象
- 在实例化对象(使用构造函数)时设置唯一的id
- 我'm困惑的地方,我将实例化对象在angular
- 实例化对象,而不是将它们存储在变量中
- 如何从惰性实例化对象继承
- 在JavaScript中按类型实例化对象
- 是否可以在jQuery/Javascript中存储非实例化对象的信息?