//职责链模式
let order500 = function(orderType,pay,stock){
if(orderType===1&&pay===true){
console.log('500定金预购,得到100优惠券')
}else{
return 'nextOrder'
}
}
let order200 = function(orderType,pay,stock){
if(orderType===2&&pay===true){
console.log('200定金预购,得到50优惠券')
}else{
return 'nextOrder'
}
}
let orderNormal = function(orderType,pay,stock){
if(stock>0){
console.log('普通购买,无优惠')
}else{
console.log('库存不足,无法购买')
}
}
Function.prototype.after = function(fn){
var self = this
return function(){
var ret = self.apply(this,arguments)
if(ret === 'nextOrder'){
return fn.apply(this,arguments)
}
return ret
}
}
var order = order500.after(order200).after(orderNormal)
order(1,true,500)
// order(2,true,500)
// order(1,false,500)