模块封装
2019-02-25 16:11:31来源:博客园 阅读 ()
var MyModules = (function Manager(){ // 保存方法 var modules = {}; // 传方法名,参数,方法 方法的参数由deps提供 function define(name, deps, impl) { // 将模块中的方法给deps 作为下一个函数的参数 // 由于apply需要一个数组,调用后,并将数组中的方法 // 变为实际的参数 for(var i = 0; i < deps.length; i++) { deps[i] = modules[deps[i]]; } // 实际定义方法 modules[name] = impl.apply(impl, deps); } // 获取方法 function get(name) { return modules[name]; } return { define: define, get: get, }; })(); // example MyModules.define('bar', [], function() { function hello(who) { return "Let me introduce: " + who; } return { hello: hello, }; }); // 定义一个foo方法,foo方法会调用模块中之前定义的bar方法 MyModules.define('foo', ['bar'], function (bar) { var hungry = 'hippo'; function awesome() { console.log(bar.hello(hungry).toUpperCase()); } return { awesome: awesome, }; });
原文链接:https://www.cnblogs.com/tujw/p/10433345.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Canvas
- nodejs中如何使用async模块 2020-02-22
- jQuery 数据缓存模块进化史详细介绍 2019-09-23
- js循环修改数组属性key值 2019-08-14
- vue学习【一】vue引用封装echarts并展示多个echarts图表 2019-08-14
- 简述JavaScript模块化编程(二) 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash