I have the following javascript: (JSFiddle)
$(function () {
function Cat()
{
this.Meow = function (sound) {
alert("Meow: " + sound);
}
this.Kick = function () {
MakeNoise();
}
var MakeNoise = function () {
Meow("noise");
//Cat.Meow("noise");
//self.Meow("noise");
//this.Meow("noise");
}
}
var c = new Cat();
c.Kick();
});
When I call the Kick function, I get the error “Meow is not defined” (with any of the four things I tried in the MakeNoise function).
I also tried prototyping like so but that gave me the same error:
Cat.prototype.Meow = function (sound) {
return this.Meow(sound);
}
I’ve sure this has a terribly straightforward solution, but I can’t figure out how to successfully call the Meow function of the “Cat” class. How can I do this?
As an aside, does this architecture make any sense at all? My intention was to have Kick and Meow as public functions, and MakeNoise as private.
Save a reference object so you can use it in the
MakeNoisefunction.http://jsfiddle.net/mowglisanu/7XEYD/3/