Modules – Exercise (AMD)
HTML
<script src="http://requirejs.org/docs/release/2.1.20/minified/require.js"></script>
JavaScript
/**
* Modules – Exercise (AMD)
*
* Use the Asynchronous Module Definition to encapsulate logic into re-usable modules
*
* 1. convert Item and Collection objects into modules
* 2. import them into App module
* 3. use same tests as previous exercise
* 4. might be easier to fork your previous exercise solution and modify
*/
function Collection(id) {
// implement me
this.id = id;
var _data = [];
this.add = function (i) {
_data.push(i);
}
this.remove = function (i) {
var index = _data.indexOf(i);
if (index > -1) {
_data.splice(index, 1);
}
}
this.size = function () {
return _data.length;
}
this.contains = function (i) {
return _data.indexOf(i) > -1;
}
}
define('modColl', ['Collection'], function (Collection) {
function Collection(id) {
Collection.call(this, id);
}
Collection.prototype = Object.create(Collection.prototype);
return Collection;
});
require(['modColl'], function (Collection) {
var Coll1 = new Collection('Test');
console.log(Coll1);
});