var Foo=function(s){
var hidden
this.setName=function(name){theName=name}
this.toString=function(){return theName}
this.public=s
}
var X=new Foo('The X')
X.setName('This is X')
X // returns 'This is X'
X.public // returns 'The X'
X.hidden // returns 'undefined'