策略模式

  

 

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const price=(function(){
            const tactics={
                '100-10':function(price){return price-parseInt(price/100)*10},
                '200-20':function(price){return price-Math.floor(price/200)*20},
                '80%':function(price){return price*0.8}
            }
            function calculate(price,tactic){
                if(!tactics[tactic]) return 'tactic not found'
                return tactics[tactic](price)
            }

            calculate.add=function(tactic,action){
                if(tactics[tactic]){
                    if(confirm(`replace ${tactic}`)){
                        tactics[tactic]=action
                    }
                }
                tactics[tactic]=action
            }
            calculate.remove=(tactic)=>{
                if(!tactics[tactic]) return 'tactic not found'
                delete tactics[tactic]
            }
            return calculate
        })()

        console.log(price(320,'100-10'))
    </script>
</body>
</html>
复制代码

 

posted @   ascertain  阅读(24)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示