Guest User

Untitled

a guest
Aug 17th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. var MyModules = (function Manager() {
  2. var modules = {};
  3.  
  4. function define(name, deps, impl) {
  5. for (var i=0; i<deps.length; i++) {
  6. deps[i] = modules[deps[i]];
  7. }
  8. modules[name] = impl.apply( impl, deps );
  9. }
  10.  
  11. function get(name) {
  12. return modules[name];
  13. }
  14.  
  15. return {
  16. define: define,
  17. get: get
  18. };
  19. })();
  20.  
  21. MyModules.define( "bar", [], function(){
  22. function hello(who) {
  23. return "Let me introduce: " + who;
  24. }
  25.  
  26. return {
  27. hello: hello
  28. };
  29. } );
  30.  
  31. MyModules.define( "foo", ["bar"], function(bar){
  32. var hungry = "hippo";
  33.  
  34. function awesome() {
  35. console.log( bar.hello( hungry ).toUpperCase() );
  36. }
  37.  
  38. return {
  39. awesome: awesome
  40. };
  41. } );
  42.  
  43. var bar = MyModules.get( "bar" );
  44. var foo = MyModules.get( "foo" );
  45.  
  46. console.log(
  47. bar.hello( "hippo" )
  48. ); // Let me introduce: hippo
  49.  
  50. foo.awesome(); // LET ME INTRODUCE: HIPPO
Add Comment
Please, Sign In to add comment