inner animal: scope of variables
by ozzymcduff
HTML
<div id="consolelog"></div>
JavaScript
var global1 = "global corp";
// Declaring our Dog object
var Dog = function () {
// Declaring our Animal object
var Animal = function () {
var self = this;
self.name = 'unknown';
self.getName = function () {
return self.name;
}
self.getGlobal = function(){
return global1;
};
self.getPrivate = function(){
return private;
};
return self;
};
// Dog extends animal
var self = this;
Animal.call(self);
// A private variable here
var private = 42;
// overriding the name
self.name = "Bello";
// Implementing ".bark()"
self.bark = function () {
return 'MEOW';
}
return self;
};
// -- Done declaring --
// Creating an instance of Dog.
var dog = new Dog();
// Proving our case
$("#consolelog").html(
["Is dog an instance of Dog? ", dog instanceof Dog, "\n",
dog.bark() +"\n", // Should be: "MEOW"
'Should be: "MEOW"',
dog.getName() +"\n", // Should be: "Bello"
'Should be: "Bello"',
dog.private +"\n", // Should be: 'undefined'
"Should be: 'undefined'",
dog.getPrivate() +"\n", // Should be: 'undefined'
"Should be: 42",
dog.getGlobal() +"\n", // Should be: 'undefined'
"Should be: 'global corp'"
].join("\n<br>")
);