Class with private function
Illustrate a Class with private function. The private function throw an error if invoked outside of the class.
by Avinash_R
HTML
<script src="http://digg.googlecode.com/files/Class-0.0.2.js"></script>
<textarea cols=30 rows=10></textarea>
JavaScript
var results=$('textarea');
function addText(text){
results.text(results.text()+text+'\n')
}
var AnimalConstant = Class.create({
LIVING_PLANET: 'Earth'
},true);
var Animal = Class.create(AnimalConstant,{
init: function(name, sound) {
this.name = name;
this.sound = sound;
},
speak: function() {
addText(this.name + " says: " + this.sound + "!");
},
_digest: function() {
for (var i in this) {
if (i && this[i] === arguments.callee.caller) {
addText(this.name + ' digesting...');
return;
}
}
throw new Error('this is an internal function');
},
eat: function(foodType) {
addText(this.name + ' eating ' + foodType);
this._digest();
addText(this.name + ' ate ' + foodType);
},
drink: function(drinkType) {
addText(this.name + ' drinking ' + drinkType);
this._digest();
addText(this.name + ' drank ' + drinkType);
},
getHabitat: function(){
return this.LIVING_PLANET;
}
});
var elephant = new Animal('Jumbo', 'trumpet');
elephant.speak();
elephant.eat('plantain');
elephant.drink('water');
addText(elephant.name + ' lives on planet '+ elephant.getHabitat());