在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
JavaScript设计模式的作用是显而易见的,开发者可以通过它写出整洁美观、结构合理的代码。本文将和大家来盘点一下五种JavaScript开发者必会的五种设计模式,它们分别是构造函数设计模式、原型设计模式、命令设计模式、观察者模式、工厂设计模式。
1、构造函数设计模式
构造函数设计模式是一种用于在分配内存后初始化新创建的对象的特殊方法。举个例子:
// 创建一个新的空对象
var newObject = {};
// 创建一个新的空对象
var newObject = Object.create(Object.prototype);
var newObject = newObject();
2、原型设计模式
原型模式是基于原型继承的。在这种模式中,被创建的对象充当其他对象的原型。实际上,原型是被创建的每个对象构造函数的蓝图。举个例子:
var myCar= {
name:"Ford Escort",
brake:function(){
console.log("Stop! I am applying brakes");
}
Panic : function (){
console.log ( "wait. how do you stop thuis thing?")
}
}
// 使用 object create 实个新的例化一 car
var yourCar= object.create(myCar);
// 现在它就是另一个的原型了
console.log (yourCar.name);]
3、命令设计模式
命令设计模式将方法调用、操作或请求封装到单个对象中,以便我们可以自行传递方法调用。命令设计模式让我们可以从任何正在执行的命令中发出命令,并将责任委托给与之前不同的对象。这些命令以 run() 和 execute() 格式显示。示例:
(function(){
var carManager = {
// 请求的信息
requestInfo: function( model, id ){
return "The information for " + model + " with ID " + id + " is foo bar";
},
// 现在购买这个 car
buyVehicle: function( model, id ){
return "You have successfully purchased Item " + id + ", a " + model;
},
// 现在 arrange viewing
arrangeViewing: function( model, id ){
return "You have successfully booked a viewing of " + model + " ( " + id + " ) ";
}
};
})();
4、观察者模式
观察者设计模式在许多对象同时与其他对象集通信的场景中用起来很方便。在观察者模式中不会在状态之间发生不必要的事件 push 和 pull;相比之下,所涉及的模块仅会修改数据的当前状态。示例:
function Observer() {
this.observerContainer = [];
}
Observer.prototype.subscribe = function (element) {
this.observerContainer.push(element);
}
// 下面是从 container 中移除一个元素
Observer.prototype.unsubscribe = function (element) {
const elementIndex = this.observerContainer.indexOf(element);
if (elementIndex > -1) {
this.observerContainer.splice(elementIndex, 1);
}
}
/**
* we notify elements added to the container by calling
* each subscribed components added to our container
*/
Observer.prototype.notifyAll = function (element) {
this.observerContainer.forEach(function (observerElement) {
observerElement(element);
});
}
5、工厂设计模式
命令设计模式将方法调用、操作或请求封装到单个对象中,以便我们可以自行传递方法调用。命令设计模式让我们可以从任何正在执行的命令中发出命令,并将责任委托给与之前不同的对象。这些命令以 run() 和 execute() 格式显示。示例:
(function(){
var carManager = {
// 请求的信息
requestInfo: function( model, id ){
return "The information for " + model + " with ID " + id + " is foo bar";
},
// 现在购买这个 car
buyVehicle: function( model, id ){
return "You have successfully purchased Item " + id + ", a " + model;
},
// 现在 arrange viewing
arrangeViewing: function( model, id ){
return "You have successfully booked a viewing of " + model + " ( " + id + " ) ";
}
};
})();
作为一个JavaScript开发者,如果你想提高项目的可维护性和开发工作的效率,那么上面盘的这些的最受欢迎的JavaScript设计模式就赶紧用起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
什么ES6?为什么要学习ES6?
什么是ES6?为什么要学习ES6?相信学习前段的小伙伴都听说过甚至已经非常了解ES6,ES6是ECMAScript6,是新版本的JavaScript语言标准,也是近十余年来变动最大的一版本,虽然目前该标准已经更新到了ES7,但是目前大部分浏览器依旧使用的ES6标准。想深入学习前端的小伙伴看过来,小编带领大家详细了解学习一下ES6。
12286
2019-11-11 18:28:20
零基础如何学好前端?有什么建议?
前端作为互联网时代直接触达用户的窗口,大到我们每天浏览到的网站,小到一次点击按钮的页面,前端无处不在。并且在产品的众多开发环节之中,最能让用户直观感受到的就是前端开发。因而前端行业的广阔发展前景也吸引了不少人的转业学习。那么,零基础如何学好前端呢?有什么建议吗?本文将为初学者详细解答一下这两个问题,下面一起来看看吧!
5159
2020-03-20 19:05:49
React项目开发教程推荐
React作为当下最流行的框架之一,拥有简单的代码逻辑和较高的性能,因此它可以很好地解决前端视图中所遇到的问题。本文将为大家推荐React项目开发教程,希望大家可以通过这个实战项目的课程,系统学习React新特性及其生态圈相关知识,并掌握实战开发的相关经验,下面我们一起来看看教程简介吧~
5309
2020-05-04 15:49:24
Web前端进阶要学什么?
近几年,Web前端行业的人才需求一直持上升趋势,而前端开发也变的越来越复杂,仅仅掌握HTML、CSS和Javascript ,已经不能满足目前各大企业的用人需要了。那么Web前端进阶要学什么呢?简单来讲,HTML5+CSS3是Web前端开发关键性技术,可以应对现阶段与未来网页制作的高标准。
5758
2020-07-03 09:50:11
JavaScript在HTML中的基础用法总结
网页主要由三部分组成,分别为HTML、CSS和Javascript。如果说HTML是肉身,CSS是皮相,那Javascript就是灵魂。因此,三者的联系与融合则至关重要。本文就来为大家讲解一下JavaScript与HTML的联系,即JavaScript在HTML中的基础用法。
4544
2020-08-13 16:49:48