Os protótipos não podem falar com variáveis ​​locais no construtor

var counter = function () {
var count = 0;
this.increment = function () { count++; }
this.get = function() { return count; }
}
//now
counter
.prototype.decrement = function () {
count
--; //will be undefined :)
}

Bem, isso pode não parecer estranho, a menos que você compare com alguma outra linguagem de programação em que a Orientação a Objetos seja adequada e verdadeira.

class counter {
private: int count;
public:
void increment() { count++; }
void decrement();
}
void counter::decrement { count--; } //count is not undefined.

JavaScript não é uma criatura estranha. Não há OOP real no idioma. O escopo é o que nos ajuda a simular a Orientação a Objetos.