Modules – AMD Example, CommonJS format
by Joshua McNeese
HTML
<script src="https://requirejs.org/docs/release/2.1.22/minified/require.js"></script>
JavaScript
// canine.js
define(function (require, exports) {
function Canine(name) {
this.name = name;
this.howler = true;
}
Canine.prototype.bark = function () {
return this.name + ' says: ' + (this.howler ? 'woooooow!' : 'woof, woof!');
};
exports.Canine = Canine;
});
// dog.js
define(function (require, exports) {
var Canine = require('canine').Canine;
function Dog(name, breed) {
Canine.call(this, name);
this.breed = breed;
this.howler = breed === 'husky';
}
Dog.prototype = Object.create(Canine.prototype);
exports.Dog = Dog;
});
// wolf.js
define(function (require, exports) {
var Canine = require('canine').Canine;
function Wolf(name) {
Canine.call(this, name);
}
Wolf.prototype = Object.create(Canine.prototype);
exports.Wolf = Wolf;
});
// canines.js
define(function (require, exports) {
var Wolf = require('wolf').Wolf;
var Dog = require('dog').Dog;
return {
Dog: Dog,
Wolf: Wolf
};
});
// app.js
require(function (require, exports) {
var canines = require('canines');
var wolf1 = new canines.Wolf('Ghost');
console.log(wolf1.bark());
var dog1 = new canines.Dog('Bandit', 'husky');
console.log(dog1.bark());
var dog2 = new canines.Dog('Patches', 'blue heeler');
console.log(dog2.bark());
});