There is a good generalized method for defining private and protected properties and methods in Javascript, here on the site. However, the current version of Prototype (1.6.0) doesn't have a built-in way to define them through its Class.create()
syntax.
I'm curious what the best practices are when developers want to define private and protected properties and methods when using Prototype. Is there a better way than the generic one?
What you can do is using local variables in your constructor function (initialize) for prototype and then creating a closure that will access/expose this variable to your public methods.
Here's a code example:
Here's Douglas crockford theory on the subject.
http://www.crockford.com/javascript/private.html
There's a discussion here in Prototype's lighthouse that shows that explains why you can't get this effect with Prototype's Class.create.
The key is to add the public methods as closures, as in the example below: