Используя этот шаблон, вы съедаете память, как конфеты, вы создаете новое закрытие каждый раз, когда вы создаете экземпляр xyPoint
.. Не определяйте никаких функций внутри конструктора. Используйте объект-прототип, чтобы они определялись только один раз:
function xyPoint(x, y)
{
this. x = x;
this.y = y;
}
xyPoint.prototype = {
constructor: xyPoint,
hasX: function(){
return (this.x != null);
},
dumbFunction: function(){
if (this.hasX())
//do something
}
};
Теперь, когда важная вещь была сказана ... вы бы использовали это так (обе версии):
var a = new xyPoint( 1,2 );
a.hasX() //true