Ну приватизировать вроде получается, если я правильно понял
function constr(){
var a = 0
this.inca = function(){
a++
}
this.geta = function(){
return a
}
}
var o1 = new constr()
var o2 = new constr()
o1.inca()
o1.inca()
o1.inca()
o2.inca()
alert(o1.geta()+" "+o2.geta()) //у каждого своя приватная a
но вот значение в переменной хранить нельзя, придется тогда рандомную r, генерируемую в конструкторе, хранить как свойство и проверять
if(!(o.geta() + o.r>100))
o.calc()