Что должен возвращать конструктор JavaScript в случае сбоя?

Если у меня есть класс javascript, экземпляр которого не может быть создан, что должен возвращать конструктор, который я могу проверить. Конструктор всегда возвращает объект, поэтому я не могу вернуть null, если конструктор не работает.

function SomeClass(id) {
  if(typeof(id) === 'number' {
    // This is good
    this.id = id;
  } else {
    // This is bad
    // This return is ignored and an empty object is returned
    return null;
  }
}

var a = new SomeClass('badParam');
if(a){
  // is true even though the class expects a number.
}

// Could use this check
if(a.id !== undefined){
  // Do some stuff
}

но, похоже, должен быть лучший способ.

38
задан oenpelli 7 April 2012 в 22:50
поделиться