组件编写2-----执行方法生成组件
2018-01-20 15:09
357 查看
组件编写1—–使用JQ生成组件
组件编写3—–对象生成组件
这种方式跟我们平时调用方法一样,只是在方法的末尾,会有一个return ,返回外部能调用的方法。function Person(name){ function _getName(){ console.log("名字:" + name) } //return中的方法或者变量,是供外部来调用 return { getName : _getName } } var man = Person("Jack"); man.getName(); //输出Jack
如果想改变name的值,则需要新建一个方法来改变,因为name是字符串来的,不是共用地址,就算把它变成共有的变量,也是无法改变的
function Person(_name){ function _getName(){ console.log("名字:" + _name) } function _setName(n){ _name = n } return { getName : _getName, setName : _setName } } var man = Person("Jack"); man.getName(); //输出Jack man.setName("Ben"); man.getName(); //输出Ben
下面是一个弹框组件的例子,这个例子的setOption,外部可以调用。
<!DOCTYPE html> <html lang="zh" > <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>组件开发2----方法调用</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <style> *{margin:0;padding:0;} ul,li{list-style: none;} .popup-box{display:none;position: fixed;left:0;top:0;width:100%;height:100%;z-index:1000;} .popup-box .pop-bg{position: absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.3);} .popup-box .pop-container{position: absolute;left:50%;top:100px;width:600px;z-index:10;} .popup-box .pop-adjust{position:relative;left:-50%;border:1px solid #999;border-radius: 5px;background:#fff;} .popup-box .pop-head{position:relative;padding:5px 10px;border-bottom:1px solid #c5b8b8;} .popup-box .pop-close{position: absolute;right:10px;top:5px;cursor: pointer;} .popup-box .pop-content{padding:5px 10px;} .popup-box .pop-footer{padding:5px 10px;border-top:1px solid #c5b8b8;} </style> <script> //弹出框组件 function model(option){ //方法的集合 var func = { show :null, hide : null } //对象的集合 var o = { model : null, close : null, } func.show = function(callback){ o.model.show(); callback && callback(); } func.hide = function(callback){ o.model.hide(); callback && callback(); } function _setOption(name,params){ func[name].call(this,params); } function _init(){ $.extend(o,option.o); //初始化对象 } _init(); return { setOption : _setOption } } </script> </head> <body> <button id="model-show">显示弹框</button> <div class="popup-box" id="model"> <div class="pop-bg"></div> <div class="pop-container"> <div class="pop-adjust"> <div class="pop-head"> title <span class="pop-close">关闭</span> </div> <div class="pop-content"> content <br /> content <br /> content <br /> content </div> <div class="pop-footer">footer</div> </div> </div> </div> <script> var data={ o : { model : $("#model"), } } var m = model(data); $("#model-show").click(function(){ m.setOption("show",function(){ console.log('执行显示回调方法'); }); }); $("#model .pop-close").click(function(){ m.setOption("hide",function(){ console.log('执行隐藏回调方法'); }); }); </script> </body> </html>
相关文章推荐
- 组件编写2-----执行方法生成组件
- 执行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决的方法
- 用PYTHON编写XPCOM组件的方法
- 用C#生成Excel文件的方法,Excel.dll组件生成的方法和设置用ASP.NET操作访问权限
- 网站开发执行文档(页面界面和功能说明文档)编写方法
- 没有main函数生成可执行程序的几种方法 http://www.linuxidc.com/Linux/2013-09/90061.htm
- 解决C语言中生成的EXE文件执行后窗口消失方法
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法 选择自 wang8712 的 Blog
- [2014.1.31] Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- exe4j生成可执行程序的使用方法
- Mybatis 通过配置文件generatorConfig.xml生成文件--main方法执行方式
- vs2008 让”生成事件”在项目生成成功后依旧执行的方法:
- 使用Myeclipse生成可执行的jar文件的方法
- 用C#生成Excel文件的方法和Excel.dll组件生成的方法
- Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- ASP.net组件编程中的两种事件编写方法
- 将Scratch的sb源文件生成EXE可执行文件的方法。
- 定义平面中的一个Circle类, 1编写一个无参数构造函数, 2编写一个有参的构造函数 3在主函数中调用无参构造函数生成圆的实例c1,调用有参构造函数生成圆的实例c2,调用实例方法判断c1和c2是否重