Skip to content

Instantly share code, notes, and snippets.

@JensThanx
Last active November 13, 2015 15:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JensThanx/0a505a9152cd7a1435e2 to your computer and use it in GitHub Desktop.
Save JensThanx/0a505a9152cd7a1435e2 to your computer and use it in GitHub Desktop.
private fields and methods in JS
function MyClass( paramA ) {
// public member
this.member = paramA;
// private member, only accessible from the inside
value1 = 3;
// very private member, only accessible from private and priviliged actors
var value2 = 6;
// private functions, only accessible from inside
function say1() {
alert( value1 );
};
function say2() {
alert ( value2 );
};
// priviliged function, almighty!
this.say1212 = function() {
say1();
say2();
alert(value1);
alert(value2);
};
};
// attached public function, accessing a public member
MyClass.prototype.getMember = function(){
return this.member;
};
// attached public function, accessing a private member
MyClass.prototype.getValue1 = function() {
return value1;
};
// attached public function, hopelessly trying to access a very private member
MyClass.prototype.getValue2 = function() {
return this.value2;
};
alert( "var m = new MyClass( 'I am new' );" );
var m = new MyClass( "I am new" );
alert( "alert(m.getMember());" );
alert(m.getMember());
alert ( 'm.member = "old old old";' );
m.member = "old old old";
alert ("alert (m.member);");
alert (m.member);
alert( "m.getMember() = 'xxx'; => invalid" );
// m.getMember() = "xxx";
alert ( "alert(m.value1);" );
alert(m.value1);
alert( "alert( m.getValue1() );" );
alert( m.getValue1() );
alert( "alert( m.getValue2() );" );
alert( "?..." + m.getValue2() );
alert( "m.say1(); => not a function" );
alert( "m.say1212();" );
m.say1212();
alert( "That's it" );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment