Лучшая практика для определения типа объекта в Javascript

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

var Point2D = function Point2D(x, y) {
  return {
    X: x,
    Y: y
  }
}

var p = new Point2D(1,1);

typeof p // yields just 'Object' not 'Point2D'

Я нашел один способ обойти это, это сделать объект его собственным прототипом, а затем вы можете эффективно получить его имя, вызвав prototype.constructor. name,

var Point2D = function Point2D(x, y) {
  return {
    X: x,
    Y: y,
    prototype: this
  }
}

new Point2D(1,1).prototype.constructor.name // yields 'Point2D'

Будет ли это нормальным способом сделать это (каковы плюсы / минусы?) или есть лучшая практика, которую я упускаю?

Спасибо.

15
задан Sean Thoman 15 October 2011 в 01:03
поделиться