Если у вас есть экземпляр объект в 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'
Будет ли это нормальным способом сделать это (каковы плюсы / минусы?) или есть лучшая практика, которую я упускаю?
Спасибо.