专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

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

来源:小嗨整编  作者:小嗨  发布时间: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.eeeoo.cn/wangluo/1147710.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • 阴阳师脚本会不会封号(阴阳师脚本辅助有哪些)?

    阴阳师脚本会不会封号(阴阳师脚本辅助有哪些)?

    阴阳师脚本会不会封号(阴阳师脚本辅助有哪些)?关于阴阳师脚本会不会封号这一问题,一直困扰着许多玩家。本文将为大家揭开阴阳师脚本辅助的神秘面纱,让你对这一问题有更清晰的了解。一、阴阳师脚本种类及功能1.加速脚本:通过修改游戏运行速度,让玩家在...

  • 绝地求生赛事2024赛程表(绝地求生赛事有哪些)?

    绝地求生赛事2024赛程表(绝地求生赛事有哪些)?

    绝地求生赛事2024赛程表(绝地求生赛事有哪些)?随着电子竞技的蓬勃发展,绝地求生作为一款深受全球玩家喜爱的游戏,其赛事活动自然备受瞩目。2024年,绝地求生赛事将继续火热进行,为广大玩家带来一场场精彩绝伦的竞技盛宴。一、PCL春季联赛(2...

  • dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?

    dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?

    dnf红玉髓是干什么用的(dnf红玉髓在哪里兑换)?在dnf中,红玉髓是一种非常有用的材料,它不仅能够兑换圣物装备,还能换取各种药剂,对于玩家来说,掌握红玉髓的用途和兑换地点至关重要。dnf红玉髓是干什么用的1.兑换圣物装备:红玉髓是制作圣...

  • 王者荣耀电脑版怎么操作(电脑打王者按哪些键)?

    王者荣耀电脑版怎么操作(电脑打王者按哪些键)?

    王者荣耀电脑版怎么操作(电脑打王者按哪些键)?王者荣耀电脑版吸引了大批玩家。电脑版王者荣耀通过模拟器运行,为玩家提供了更加舒适的操控体验。那么,电脑上玩王者荣耀应该如何操作呢?下面介绍一下键盘按键设置及其功能。一、下载与安装要在电脑上下载并...

  • 推广app赚佣金平台有哪些(推广app是什么工作)?

    推广app赚佣金平台有哪些(推广app是什么工作)?

    推广app赚佣金平台有哪些(推广app是什么工作)?简单来说,推广引流app就是利用各种渠道,将一款应用程序(App)推广给潜在用户,吸引他们下载并使用。推广app赚佣金平台有哪些1:U客直谈想要从事地推app拉新行业,U客直谈建议深入了解...

  • lol战队最新排名(lol战队有哪些)?

    lol战队最新排名(lol战队有哪些)?

    lol战队最新排名(lol战队有哪些)?近日,英雄联盟赛事官方正式推出全球战队战力排名,该榜单涵盖了全球各大赛区的一级联赛战队。让我们一起来看看这份最新排名。在这份榜单中,LCK赛区的实力继续保持领先地位,其中GEN战队以出色表现位居榜首。...

  • 绝地求生是哪个国家开发的(pubg被腾讯买下了吗)?

    绝地求生是哪个国家开发的(pubg被腾讯买下了吗)?

    绝地求生是哪个国家开发的(pubg被腾讯买下了吗)?绝地求生(Playerunknown'sBattlegrounds,简称PUBG)是一款由韩国蓝洞公司(KraftonInc.,原PUBGCorporation)开发的大逃杀类型射击游戏。...

  • lol是哪个国家开发的(英雄联盟最先是韩国的吗)?

    lol是哪个国家开发的(英雄联盟最先是韩国的吗)?

    lol是哪个国家开发的(英雄联盟最先是韩国的吗)?英雄联盟(LeagueofLegends,简称LOL)作为全球最热门的电子竞技游戏之一,拥有庞大的玩家基础和高度的职业化体系。然而,关于这款游戏的开发背景,有些人可能会有疑问:LOL最初是韩...

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

精彩推荐