2016-05-16 37 views
0

我的代码一点块用于转化缩写Acronyms.parse([对象]。功能)不是一个函数

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不是函数 当我尝试搜索尽可能多的关键字时,我可以继续看到关于分号的事情,所以问题可能在那里?我不认为这是,但也许我错过了一些东西。

回答

2

new Acronyms.parse()试图获得Acronyms.parse并将其用作构造函数。

取而代之,您要使用Acronyms作为构造函数,并调用该实例的parse方法。这可以通过

new Acronyms().parse() // preferred way 
(new Acronyms).parse() // alternative 

这是在实例化构造函数时忽略括号不是一个好主意的原因。

0

您需要实例使用new Acronyms(),并然后你可以叫parse()一个Acronyms对象。因为它试图使用Acronyms.parse作为构造函数,但该函数不存在(因为它说),因为parseprototype之下。

相反,使用这样的:

new Acronyms().parse('Portable Network Graphics')) 
相关问题