gpt4 book ai didi

javascript - 使用其原型(prototype)之一初始化 JS 对象

转载 作者:行者123 更新时间:2023-12-03 01:53:50 25 4
gpt4 key购买 nike

我有以下 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;

我正在尝试用 Mocha 和 Chai 进行测试,如下所示:

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 不是构造函数,这并不令我感到惊讶。我不确定如何开发这个结构以及是否有更好的方法来实现我的目标。如果还不清楚:Score 是一个类,当给定掷骰子和得分规则时,它将对特定游戏进行评分,后者是该函数的原型(prototype)之一。感谢您的建议。

最佳答案

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

关于javascript - 使用其原型(prototype)之一初始化 JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50317913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com