2016-05-12 9 views
2

ここで間違っているのは何ですか?関数はJSのオブジェクトではありませんか?ノードモジュールのオブジェクトであることが未定義

car.js

'use strict'; 


var Car = function(){ 

}; 

export default Car; 

は車-test.jsが

import {expect} from 'chai'; 
import {Car} from '../../src/car'; 

describe('car',() => { 

    it('should have a car to work with',() => { 
     expect(Car).to.be.an('object'); 
    }); 

}); 

UPDATEが、私もちょうどVARアウトを残すことができる

は、わからないことが行う場合違いは、varはまだ同じことを指しているが、私はこれを行うこともできる:

function Car(){ 

}; 

export default Car; 
+0

あなたのインポートが間違っているので、 'Car'は' undefined'です。それは '../../ src/car ';'から '' Import Car' 'でなければなりません。 –

答えて

3

a/anは、項目のtypeof値をテストします。はい、関数はオブジェクトですが、typeof"function"です。

これは単なるtypeofは(実際には、私は別のものを考えることはできません私たちにちょうど"object"オブジェクトのためのより詳細な情報を提供する唯一の場所についてです。typeof new Date"object"あり、typeof正規表現オブジェクトはなど、"object"です)。 typeofはかなり曖昧ですが、この1つの状況では具体的でした。 :-) FWIW、私は私の貧血のちょっとしたブログでタイプチェックをしています:Say what?

+0

だから、これは私が抜けている基本的なところです。関数はJSのオブジェクトではありませんか? – PositiveGuy

+0

ok。だから、私はそれを使うことができると確信しています...このテストに合格するには、新しいキーワードを使うべきですか? – PositiveGuy

+0

私はそれをインスタンス化する必要がありました.... – PositiveGuy