详细说明单例模式原理和js设计模式的用法
本文阐述了js设计模式的单体模式原理及应用。分享给大家参考,如下:
至于设计模式,我的理解是,它是一个针对业务代码的高级解决方案。这意味着设计模式在真正的业务之前就存在了,这是显而易见的。设计模式是人们长期从事业务总结的通用解决方案。
个人认为,已经写了太多的命令式编程代码。所谓的命令代码是可以根据业务需要编写的功能,例如添加点击事件,例如执行验证。当您编写代码时,您很少从设计模式或前辈的角度来改进代码。
我不想给自己找客观的理由。最近开始关注设计模式,尝试从设计模式的角度来改进开发。
在开始单一案例设计模式之前,我们应该首先了解js中apply和call的功能。
apply和call的直接作用是先运行函数,然后根据对象是否发生了变化来借用和使用方法。apply和call的区别在于前者接收一个数组作为第二个参数,而call接管参数列表。这种区别并不具体,而是他们的作用
1)运行功能栗子
//运行函数function test(){ alert(1);} test . apply();即使不用apply也能运行该功能,在某些场合使用apply也是专业的。
2)这在apply (this,arguments)中没有变化,即直接使用了object方法,并且没有借用的概念
var arr=[1,2,3];var max=Math.max.apply(null,arr);警报(最大值);3)这种变化,这一次是使用这个对象的方法来使用其他对象
脚本/*定义了一个人*/函数人(姓名、年龄){这个。name=namethis.age=年龄;}/*定义一个学生班级*/函数学生(姓名、年龄、年级){person。应用(这个,参数);this.grade=等级;}//创建一个学生班级var student=new student(钱,21岁,“一年级”);//测试警报(' name : ' student . name ' \ n ' ' age : ' student . age ' \ n ' ' grade : ' student . grade);//考试成绩姓名:钱年龄:21年级:一年级。//因为这个的对象在执行过程中会发生变化,所以依赖Persion对象的就是这个。/脚本运行结果:
在介绍了apply和这个之后,下面是对单一设计模式的解释。
单例设计模式的核心是只创建和返回一个对象。因为只有一个对象,所以有了缓存的概念。本文用的是别人的案例,能够明确问题是好案例就是好案例;
!doctype html lang=' en ' head meta charset=' utf-8 ' title简单利益模式应用程序/title/head body div button id=' open BTN ' create button/button script type=' text/JavaScript '/design mode核心代码var get single=function(fn){ var result;return函数(){ return(result | |(result=fn . apply(this,arguments)));} }//业务代码创建div代码var create div=function(){ var div=document . create element(' div ');Div.innerHTML='我正在创建一个对象';console . warn(' 11 ');//多次点击只输出一次return div} var CreateSingleDiv=GetSingle(CreateDiv);//业务代码document . getelementbyid(' open BTN ')的触发器事件。onclick=function(){ var div=create single div();document . getelementsbytagname(' body ')[0]。appendChild(div);} /script /div/body/html运行结果:
上面| |有一个小窍门,就是就近计算,如果结果有值,以后就不算了。同样,上面的apply只是起到一个运行的作用。
据说单例模式有很多用途。目前我知道如何创建弹出窗口,创建蒙版图层,实现jquery的一个功能效果。
最后,这里设计模式的核心代码使用闭包,可以节省范围链,所以静态变量会发生变化。因此,产生了缓存效果。
感兴趣的朋友可以使用在线HTML/CSS/JavaScript前端代码调试运行工具:http://tools.jb51.net/code/WebCodeRun来测试上述代码的运行效果。
有关JavaScript的更多信息,请查看本网站的专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》和《JavaScript数学运算用法总结》
希望本文对JavaScript编程有所帮助。
版权声明:详细说明单例模式原理和js设计模式的用法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。