[javascript] Accessing private member variables from prototype-defined functions

You need to change 3 things in your code:

  1. Replace var privateField = "hello" with this.privateField = "hello".
  2. In the prototype replace privateField with this.privateField.
  3. In the non-prototype also replace privateField with this.privateField.

The final code would be the following:

TestClass = function(){
    this.privateField = "hello";
    this.nonProtoHello = function(){alert(this.privateField)};
}

TestClass.prototype.prototypeHello = function(){alert(this.privateField)};

var t = new TestClass();

t.prototypeHello()