2016-10-17 6 views
0

Учитывая класс:(obj instanceof ObjectClass) не работает?

class Day { 
    constructor(year, month, day) { 
     this._moment = new Moment() 
     this.year = year || this._moment.year() 
     this.month = month || this._moment.month() 
     this.day = day || this._moment.date() 
    } 
} 

Я имею let day = new Day() и передать, что через пару функциональных вызовов. Но позже я проверяю этот объект на day instanceof Day и возвращает false. Когда я console.log(day) в хром, я получаю Day {_moment: Moment, year: 2016, month: 9, day: 17}.

Имея префикс дня в журнале консоли перед тем, как я проверю с помощью экземпляра, невозможно определить, почему day instanceof Day возвращает false.

Любые идеи?

редактировать:

console.log('Day: ', day) 
console.log('Day: ', typeof day) 
console.log('Day: ', day instanceof Day) 

Выход:

Day: Day {_moment: Moment, year: 2016, month: 9, day: 17} 
    _moment: Moment 
    day: 17 
    month: 9 
    year: 2016 
    __proto__: Object(anonymous function) 
Day: object 
Day: false 
+5

It Works For Me® - пожалуйста, создайте _Small Self-Contained Example_ – Alnitak

+0

Его часть более крупного проекта, поэтому я не совсем уверен, что вызывает проблему, поэтому что нужно извлечь. – Steven

+1

Возможно, вы загружаете модуль дважды (в двух средах?) Или дублировали его каким-либо другим способом. – Bergi

ответ

2

@Bergi был правильным, в одном импорте класса день я написал: Дня импорта из '../lib/Day'

Webpack затем сгенерировал другой тип дня, который использовался в этой части моей кодовой базы. Совет: всегда используйте строчные буквы для импорта и требуйте.

Смежные вопросы