我有一小段代码用于转换首字母缩略词
var Acronyms = function () {};
Acronyms.prototype.parse = function(string) {
var array = string.split(' ');
var answer = '';
for (var i = 0; i < array.length; i++) {
answer += array[i][0];
}
return answer;
};
module.exports = Acronyms;
与此测试一起使用时
describe('Acronyms are produced from', function(){
it('title cased phrases', function() {
expect(new Acronyms.parse('Portable Network Graphics')).toEqual('PNG');
});
});
给我:TypeError:Acronyms.parse不是一个函数 当我试图搜索尽可能多的关键词时,我一直看到有关半冒号的事情,所以可能问题就在那里?我不认为是,但也许我错过了一些东西。
答案 0 :(得分:2)
new Acronyms.parse()
尝试获取Acronyms.parse
并将其用作构造函数。
相反,您希望使用Acronyms
作为构造函数,并调用实例的parse
方法。这可以通过
new Acronyms().parse() // preferred way
(new Acronyms).parse() // alternative
这是在实例化构造函数时省略括号不是一个好主意的原因。
答案 1 :(得分:0)
您需要使用Acronyms
实例化new Acronyms()
对象,然后然后,您可以调用parse()
。因此,它尝试使用Acronyms.parse
作为构造函数,但该函数不存在(正如它所说),因为parse
位于prototype
。< / p>
相反,请使用它:
new Acronyms().parse('Portable Network Graphics'))