Как правильно реализовать методы-прототипы внутри тела?
Вам может не понравиться этот ответ: не определяйте их внутри тела, поскольку это будет переопределять их каждый раз, когда конструктор запускается для этого объекта. Определите их так, как будто вы работаете, с objectType.prototype...
после того, как оно объявлено.
Методы прототипа предназначены для общего использования всеми экземплярами, то, что вы делаете, находится где-то посередине, вы либо хотите, чтобы они были объявлены внутри, специфичными для этого экземпляра, например:
function mapTile(nx,ny)
{
//members
this.x = nx;
this.y = ny;
//methods
this.visible = function(){return true;};
this.getID = function(){return y*tiles_per_line+x;};
this.getSrc = function(){return 'w-'+this.getID+'.png';}
}
Или поделился с прототипом снаружи, как это:
function mapTile(nx,ny)
{
//members
this.x = nx;
this.y = ny;
}
mapTile.prototype.visible = function(){return true;};
mapTile.prototype.getID = function(){return y*tiles_per_line+x;};
mapTile.prototype.getSrc = function(){return 'w-'+this.getID+'.png';}