Modules – RMP Example
by manu troiani
JavaScript
var Canine = (function () {
function Canine(name) {
this.name = name;
this.howler = true;
}
Canine.prototype.bark = function () {
return this.name + ' says: ' + (this.howler ? 'woooooow!' : 'woof, woof!');
};
return Canine;
}());
var Dog = (function (Canine) {
function Dog(name, breed) {
Canine.call(this, name);
this.breed = breed;
this.howler = breed === 'husky';
}
Dog.prototype = Object.create(Canine.prototype);
return Dog;
}(Canine));
var Wolf = (function (Canine) {
function Wolf(name) {
Canine.call(this, name);
}
Wolf.prototype = Object.create(Canine.prototype);
return Wolf;
}(Canine));
var Animals = (function (Wolf, Dog) {
return {
Dog: Dog,
Wolf: Wolf
};
})(Wolf, Dog);
var wolf1 = new Animals.Wolf('Ghost');
console.log(wolf1.bark());
var dog1 = new Animals.Dog('Bandit', 'husky');
console.log(dog1.bark());
var dog2 = new Animals.Dog('Patches', 'healer');
console.log(dog2.bark());