Javascript  Constructor构造器模式与Module模块模式怎么实现

发布时间:2022-08-25 16:31:00 作者:iii
来源:亿速云 阅读:80

这篇“Javascript  Constructor构造器模式与Module模块模式怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Javascript  Constructor构造器模式与Module模块模式怎么实现”文章吧。

前言

首先我们要知道:什么是模式?

模式,就是专门为某些常见问题开发的、优秀的解决方案。它通常经过一系列实践证明、针对某类问题具有可重用性的解决方案。 而设计模式,不同于编程模式,其与具体的语言无关。

1.Constructor构造器模式

1.1基础Constructor构造器模式

// 使用函数来模拟一个Car类
function Car(model,year,miles) {
	this.model = model ;
	this.year = year;
	this.miles = miles;

	this.toString = function () {
		return this.model + "已经行驶了" + this.miles + "米";
	}
}

//调用
var honda = new Car("东风Honda",2009,20000);//实例化Car

//输出结果
console.log(honda.toString());

缺陷:

1.2进阶 带原型的Constructor构造器模型

function Car(model,year,miles) {
	this.model = model ;
	this.year = year;
	this.miles = miles;

	//每个对象都有构造器原型的所有属性。
	Car.prototype.toString = function() {
		return this.model + "已经行驶了" + this.miles + "米";
	}
}
//调用
var honda = new Car("东风Honda",2009,20000);//实例化Car
console.log(honda.toString());

优点:

2. Module 模块模式

模块能帮助我们清晰分离和组织项目中的代码单元。

在js中有几种实现模块的方法:

本篇中我们主要介绍“对象字面量”表示法。

2.1对象字面量

示例:

<script type="text/javascript">
    const myObjectLiteral = {
        varibaleKey : varibaleValue,
        function: function () {
                //实现
        }
    };
</script>

注意 :

2.2 Module(模块)模式

JS中,Module模式用于进一步模拟类的概念。它能够使一个单独的对象拥有公有、私有方法和变量,从而屏蔽来自 全局作用域的特殊部分。进而降低了与其他脚本冲突的可能性。

其中,私有部分,主要利用了“闭包”。由于闭包的存在,声明的变量和方法只能在该模式内部可用。但在返回对象上 定义的变量和方法,外部使用者是能够调用的。

一个关于购物车的例子:

<script type="text/javascript">
	const basketModule = (function() {
		//私有
		let baskey = [];
		function doSomethingPrivate () {
			//实现
		}
		function doSomethingElsePrivate() {
			//实现
		}
		//返回一个暴露出的公有对象API
		return {
			//添加item到购物车
			addItem: function (values) {
				basket.push(values);
			},
			//获取购物车里的item数
			getItemCount: function() {
				return basket.length;
			},
			//私有函数的公有形式别名
			doSomething: doSomethingPrivate,
			//获取购物车里所有item的价格总值
			getTotal: function() {
				let itemCount = this.getItemCount(),
					total = 0;
				while (itemCount--) {
					total += basket[itemCount].price;

				}
				return total;
			}
		}

	})();
	//交互
	basketModule.addItem({
		item: "bread",
		price: 0.5
	});
	basketModule.addItem({
		item: "酱油",
		price: 1.5
	});
	//输出结果
	console.log(basketModule.getItemCount());//2
	console.log(basketModule.getTotal());//0.5+1.5 = 2
	//注意
	console.log(basketModule.basket);//underfined。因为basket没有暴露在公有的API中
</script>

优点:

缺点:

以上就是关于“Javascript  Constructor构造器模式与Module模块模式怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. javascript与php单例模式
  2. 如何基于JavaScript实现单例模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript  constructor module

上一篇:win7内存大小怎么更改

下一篇:Python NumPy数组的基本操作方法有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》