2016-05-16 8 views
0

ない私は、このテストで使用した場合Acronyms.parse([対象] .function)が機能

describe('Acronyms are produced from', function(){ 
    it('title cased phrases', function() { 
    expect(new Acronyms.parse('Portable Network Graphics')).toEqual('PNG'); 
    }); 
}); 

が私を与えること頭字語

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; 

を変換するためのコードのほとんどのチャンクを有します。 TypeError:Acronyms.parseは関数ではありません 多くのキーワードを検索しようとしたときに、セミコロンについての情報が残っていたので、おそらく問題がありましたか?私はそれがだとは思わないが多分私は何かを逃した。

答えて

2

new Acronyms.parse()Acronyms.parseを取得し、それをコンストラクタとして使用する試み。

代わりに、Acronymsをコンストラクタとして使用し、インスタンスのparseメソッドを呼び出します。それは、これはそれがコンストラクタをインスタンス化する際に、括弧を省略するのは良い考えではありません理由です

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

で達成することができます。

0

あなたはparse()を呼び出すことができますその後、new Acronyms()を使用してAcronymsオブジェクトをインスタンス化する必要がある、と。つまり、Acronyms.parseをコンストラクタとして使用しようとしていますが、parseprototypeの下にあるため、その関数は存在しません。代わりに

、このようにそれを使用します。

new Acronyms().parse('Portable Network Graphics')) 
関連する問題