专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

常用的前端开发设计模式有哪些

来源:小易整编  作者:小易  发布时间:2024-03-14 08:53
摘要:前端开发设计模式有:1、模块模式;2、构造函数模式;3、工厂模式;4、混合模;5、单例模式;6、订阅发布模式等等。常用的前端开发设计模式有:模块模式,构造函数模式,工厂模式,混合模式,单例模式以及订阅-发布模式。前端开发设计模式模块模式:在...

前端开发设计模式有:1、模块模式;2、构造函数模式;3、工厂模式;4、混合模;5、单例模式;6、订阅发布模式等等。

常用的前端开发设计模式有哪些

常用的前端开发设计模式有:模块模式,构造函数模式,工厂模式,混合模式,单例模式以及订阅-发布模式。

前端开发设计模式

模块模式:

在立即执行函数表达式中定义的变量和方法在外界是访问不到的,只能通过其向外部提供的接口,"有限制"地访问.通过函数作用域解决了属性和方法的封装问题.

var Person = (function(){    var name = "xin";    var age = 22;    function getName(){        return name;    }    function getAge(){        return age;    }    return {        getName: getName,        getAge: getAge    }})();console.log(age); // 报错:age未定义console.log(name); // 报错:name未定义console.log(Person.age); // undefinedconsole.log(Person.name); // undefined只能通过Person提供的接口访问相应的变量console.log(Person.getName()); // xinconsole.log(Person.getAge()); // 22
登录后复制

构造函数模式

function Person(name,age){    this.name = name;    this.age = age;}Person.prototype = {    constructor: Person;    printName: function(){        console.log(this.name);    },    printAge: function(){        console.log(this.age);    }}var person = new Person('xin', 22);person.printName(); // xinperson.printAge(); // 22
登录后复制

混合模式

function Person(name,age){    this.name = name;    this.age = age;};Person.prototype.printName = function(){    console.log(this.name);}function Student(name,age){    //继承 Person 的属性    Person.call(this,name,age);}function create(prototype){    function F(){};    F.prototype = prototype;        return new F();}//让Student的原型指向一个对象,该对象的原型指向了Person.prototype,通过这种方式继承 Person 的方法Student.prototype = create(Person.prototype);Student.prototype.printAge = function(){    console.log(this.age);}var student = new Student('xin',22);student.printName(); // "xin"
登录后复制

工厂模式

function Person(name, age){    var person = new Object();    person.name = name;    person.age = age;    person.printName = function(){            console.log(this.name);    };    person.printAge = function(){            console.log(this.age);    }        return person;}var person = Person('xin',22);
登录后复制

单例模式

var Singleton = (function (){    var instance;    function init(){        return {        };    }    return {            getInstance: function(){                if(!instance){               instace = init();            }            return instance;        }    };})();
登录后复制

发布-订阅模式

发布-订阅模式又叫做观察者模式,定义了对象之间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖与它的对象都将得到通知.

发布-订阅模式广泛应用于异步编程之中,是一种替代回调函数的方案.多个事件处理函数可以订阅同一个事件,当该事件发生后,与其相对应的多个事件处理函数都会运行取代对象之间硬编码的通知机制,一个对象不用再显示的调用另外一个对象的某个接口,降低模块之间的耦合程度,虽然不清楚彼此的细节,但是不影响他们之间相互通信

应用

DOM事件

DOM事件是一种典型的发布-订阅模式,对一个dom节点的一个事件进行监听,当操作dom节点时,触发相应的事件,响应函数执行.事件函数对dom节点完全未知,不用去理会是什么事件,如何触发,执行就好.

自定义事件

指定发布者"发布-订阅"这种关系用一个对象表示,键表示事件名,值是一个由事件处理程序组成的数组,相当于订阅者的花名册发布消息后,遍历缓存列表,依次执行订阅者的回调函数

var EventCenter = (function(){      //将所有的"发布-订阅"关系放到events中        var events = {};    //给事件绑定事件处理程序,     function on(evt, handler){    //evt:事件名,handler:事件处理程序           events[evt] = events[evt]||[];        events[evt].push({                    handler:hander        });    }    //发布消息(触发事件),并执行相应的事件处理程序      function fire(evt,args){        //evt:事件名,args:给事件处理程序传递的参数           if(!events[evt]){                return;        }        //遍历事件处理程序列表,执行其中每一个事件处理程序                for(var i=0;i登录后复制

实际应用

var Event = (function(){      var events = {};        function on(evt, handler){        events[evt] = events[evt]||[];        events[evt].push({                    handler:handler        });    }    function fire(evt,args){            if(!events[evt]){                return;        }                for(var i=0;i登录后复制

以上就是常用的前端开发设计模式有哪些的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1147710.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • c语言的输入函数有哪些

    c语言的输入函数有哪些

    c语言的输入函数有:1、scanf()函数、从标准输入stdin读取格式化输入;2、getchar()函数,从标准输入stdin获取一个字符;3、gets()函数,从标准输入stdin读取一行;4、getch()函数,从stdin流中读取字...

  • 因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有哪些

    因特网能提供的最基本服务有:1、www服务;2、电子邮件e-mail服务;3、远程登录telnet服务;4、文件传输ftp服务;5、usenet网络新闻组服务;6、电子公告牌服务。本教程操作环境:windows7系统、DellG3电脑。因...

  • 如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发随着移动互联网的迅猛发展,移动端应用的开发变得越来越重要。Vue.js作为一款轻量级、高性能的前端框架,被广泛应用于移动端开发中。本文将介绍如何使用Vue技术进行移动端开发,并给出具体的代码示例。一、准备工作...

  • 前端开发需要哪些软件

    前端开发需要哪些软件

    编程一般用的软件有:1、hbuilder;2、sublimetext;3、webstorm;4、phpstudy;5、dreamweaver;6、visualstudio;7、phpstorm;8、notepad等等。孔子说,“工欲善其...

  • Java 中的各种锁有哪些?

    Java 中的各种锁有哪些?

      Java中15种锁的介绍  在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:  公平锁/非公平锁  可重入锁/不可重入锁  独享锁/共享锁  互斥锁/读写锁  乐观锁...

  • java8新特性有哪些

    java8新特性有哪些

    java8新特性有:1、lambda表达式;2、方法引用;3、默认方法;4、新编译工具;5、streamapi;6、datetimeapi;7、option;8、nashornjavascript引擎。Java8新增了非常多的特性...

  • 网络安全相关内容有哪些

    网络安全相关内容有哪些

    网络安全相关内容有:1、网络攻击;2、信息安全;3、防抵赖问题;4、网络内部安全防范;5、网络防病毒;6、网络数据备份与灾难恢复等。一、网络攻击1、对网络的攻击大致可以分为两类:服务供给和非服务攻击。从攻击的手段可以分为8类:系统入侵类攻击...

  • 怎么查看使用的docker是哪个版本

    怎么查看使用的docker是哪个版本

    可以利用“dockerversion”命令查看docker是那个版本,该命令用于显示docker的版本信息,并且可以通过设置参数为“-f”来指定返回值的模板文件,显示结果中“version”一项的内容就是docker的版本号。本教程操作环...

  • 周排行
  • 月排行
  • 年排行

精彩推荐