在线客服
扫描二维码
下载博学谷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设计模式就赶紧用起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
2019年应该如何学习前端开发
现在用户对于产品的选择不仅仅是内容的完善,同时也更加注重产品的体验以及交互,因此前端开发工程师的重要作用愈发明显。2019年已经接近一半,很多准备入行前端开发工程师的或者还在犹豫小伙伴们,不知道准备得怎么样了呢?今天来给大家讲讲,在2019年,我们学习前端开发,如何才能高效学会前端开发?
14529
2019-08-08 10:23:19
JavaScript视频教程学了有用吗?
JavaScript视频教程学了有用吗?答案不是一定的,需要结合视频的课程质量判断,不能一概而论。但是对于许多人来说,比起自己一个人啃枯燥又厚重的专业书籍,视频课程无疑是更适合大众的绝佳自学途径。因此,本文将从教学优势、课程内容和学习收获多方面,为大家详细介绍一下博学谷的JavaScript视频教程,相信可以打消大家对于学习JavaScript视频教程的怀疑和困惑。
6497
2020-02-28 17:22:43
前端培训的就业前景如何?
web前端的学习培训,永远无法避免的一个话题就是找工作这类问题,无论你是在哪个培训机构学习,找工作这个问题都是你必须要考虑的,今天我们就就业问题讨论一下。其实web前端培训能找到工作,web前端培训找到工作并不难。
7350
2020-03-30 16:48:00
H5前端开发主要做什么?从事的前端岗位?
html5前端技术集合开发岗位,会用到html5、CSS3以及JS前端技术;h5即HTML5,描述网页的标准语言,html5是属于前端开发的一部分。可以胜任企业的WEB前端开发工程师、H5 APP开发工程师、微信小程序开发工程师。
12004
2020-11-23 16:40:24
前端和后端开发哪个工资高?
一般来说前端开发平均薪资17k左右,后端开发平均工资16k左右,能拿到这个薪资水平的一般是有1-2年工作经验的开发人员,由于公司要求几个人能力不同薪资差距还是比较大的。
15169
2020-12-22 16:06:41
