Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS对象的一个原型初始化JS对象_Javascript_Mocha.js - Fatal编程技术网

Javascript 使用JS对象的一个原型初始化JS对象

Javascript 使用JS对象的一个原型初始化JS对象,javascript,mocha.js,Javascript,Mocha.js,我有以下Javascript类 var Score = function (roll, category) { this.roll = []; this.category = category; }; Score.prototype.getRoll = function () { return this.roll; }; Score.prototype.ones = function() { this.roll.filter((i) => i == 1) .re

我有以下Javascript类

var Score = function (roll, category) {
this.roll = [];
this.category = category;
};

Score.prototype.getRoll = function () {
    return this.roll;
};

Score.prototype.ones = function() {
    this.roll.filter((i) => i == 1)
    .reduce((sum, i) => sum + i);
};

module.exports.Score = Score;
我正试着用摩卡和柴来测试它,就像这样:

var Score = require('../src/Score.js');
describe('Score', function() {
    var score = new Score([1,2,3,4,5], this.ones);
    expect(score).to.be.of.type(Score);

    describe('ones', function() {

    });
});

然而,我得到一个错误,声称分数不是构造函数,这并不奇怪。我怀疑如何发展这种结构,以及是否有更好的方法来实现我的目标。如果不清楚的话:Score是一个类,当给出一个掷骰和一个得分规则时,它将为一个特定的游戏得分,后者是函数的原型之一。谢谢您的建议。

您的导出与导入不匹配。导出一个普通对象(
module.exports
),该对象具有名为
Score
的属性,该属性是一个函数(构造函数)。但是另一个文件希望它导出构造函数本身。因此,要么将测试文件更改为
var Score=require('../src/Score.js').Score
,或将另一个文件更改为
module.exports=Score。(后者当然会影响导入此脚本的任何其他脚本。)

在构造函数中,您没有分配
roll
param您是否导出了
Score
类?您希望
this.one
在测试
description
回调中是什么?我确实导出了它,只是忘了在这里编写它。更新了问题。我无法控制日志分数,因为错误发生在第4行
var score=new score([1,2,3,4,5],this.ones)像这样导出
module.exports=Score