js中代码复用

关于js中代码复用的问题

主要实现功能

对于坐飞机的乘客来说,经济舱,头等舱的服务待遇是不同的。这段代码主要实现对不同舱位乘客实现不同的服务。

  • 飞机上的乘客点餐、喝饮料、看电影等服务;
  • 定义一个表示乘客的数据结构,一共有4个乘客对象
  • 每个乘客都有3个属性,这里主要检查乘客的票是经济舱还是头等舱。也就是ticket属性的值。
var passengers = [  { name: "Jane Doloop", paid: true, ticket: "coach" },
					{ name: "Dr. Evel", paid: true, ticket: "firstclass" },
					{ name: "Sue Property", paid: false, ticket: "firstclass" },
					{ name: "John Funcall", paid: true, ticket: "premium" } ];

在函数createDrinkOrder中,创建一个让乘客点饮料的函数,再返回这个函数,于是每次在乘客每次点饮料的时候就不用每次都判断乘客所处的舱位。

function createDrinkOrder(passenger) {
	var orderFunction;
	if (passenger.ticket === "firstclass") {
		orderFunction = function() {
			alert("Would you like a cocktail or wine?");
		};
	} else if (passenger.ticket === "premium") {
		orderFunction = function() {
			alert("Would you like wine, cola or water?");
		};
	} else {
		orderFunction = function() {
			alert("Your choice is cola or water.");
		};
	}
	return orderFunction;
}

同样的,在函数createDinnerOrder中,创建一个让乘客点晚餐的函数,并返回它。

function createDinnerOrder(passenger) {
	var orderFunction;
	if (passenger.ticket === "firstclass") {
		orderFunction = function() {
			alert("Would you like chicken or pasta?");
		};
	} else if (passenger.ticket === "premium") {
		orderFunction = function() {
			alert("Would you like a snack box or cheese plate?");
		};
	} else {
		orderFunction = function() {
			alert("Would you like peanuts or pretzels?");
		};
	}
	return orderFunction;
}

最后,实现这些功能。

function serveCustomer(passenger) {
	var getDrinkOrderFunction = createDrinkOrder(passenger);
	var getDinnerOrderFunction = createDinnerOrder(passenger);

	getDrinkOrderFunction();

	// get dinner order
	getDinnerOrderFunction();
function serveCustomer(passenger) {
	var getDrinkOrderFunction = createDrinkOrder(passenger);
	var getDinnerOrderFunction = createDinnerOrder(passenger);
	//乘客喝饮料
	getDrinkOrderFunction();

	//乘客吃饭
	getDinnerOrderFunction();
    //乘客又要喝饮料
	getDrinkOrderFunction();
	getDrinkOrderFunction();
}
function servePassengers(passengers) {
	for (var i = 0; i < passengers.length; i++) {
		serveCustomer(passengers[i]);
	}
}

servePassengers(passengers);

我的问题,在createDrinkOrder和createDinnerOrder函数中,如何继续复用判断乘客在哪个舱位的代码?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值