Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- var libraryStorage = {};
- function librarySystem(libraryName, dependencies, callback) {
- // creating a library
- if(arguments.length > 1) {
- // creating a dependent library
- if(dependencies && dependencies.length !== 0) {
- var requiredLibrariesStorage = [];
- for(var i = 0; i < dependencies.length; i++) {
- requiredLibrariesStorage.push(libraryStorage[dependencies[i]]);
- }
- libraryStorage[libraryName] = callback.apply(this, requiredLibrariesStorage)
- } else {
- // creating an independent library
- libraryStorage[libraryName] = callback();
- }
- } else {
- // retreiving a library
- return libraryStorage[libraryName];
- }
- }
- window.librarySystem = librarySystem;
- })();
- librarySystem('name', [], function() {
- return 'Gordon';
- });
- librarySystem('company', [], function() {
- return 'Watch and Code';
- });
- librarySystem('workBlurb', ['name', 'company'], function(name, company) {
- return name + ' works at ' + company;
- });
- console.log(librarySystem('workBlurb')); // 'Gordon works at Watch and Code'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement