用 JS 送花,顺便聊聊对象、代理和设计模式——一场代码的浪漫邂逅

134 阅读2分钟

用 JS 送花,顺便聊聊对象、代理和设计模式——一场代码的浪漫邂逅

大家好,今天我们不聊八卦、不谈理财,来点技术的浪漫——用 JavaScript 送花!别眨眼,这可不仅仅是“console.log”那么简单。

JS:灵活的“花店老板”

JavaScript 是什么?一句话总结:弱类型、动态、灵活,前后端通吃的脚本语言。你可以把它想象成一个万能的花店老板,什么花都能卖,什么客户都能服务。

1. 用 JS 介绍自己,顺便秀一把对象

在 JS 里,变量类型随赋值而变,想变就变,堪称“变形金刚”。

const zwc = {
    name: 'zwc',
    age: 18,
    tall: 178,
    hometown: '江西宜春',
    isSingle: false
};

对象字面量 {} 就是 JS 的“身份证”,属性是你的“个人信息”,方法是你的“行为”。

2. 面向对象思想:现实世界的代码复刻

JS 的对象不仅能存属性,还能存方法。比如:

const lzy = {
    name: 'lzy',
    age: 18,
    tall: 178,
    hometown: '江西萍乡',
    isSingle: false,
    sendFlower: function (obj) {
        console.log(lzy.name + '送花给' + obj.name);
        obj.receiveFlower(lzy);
    }
}

lzy 不仅有“身高体重”,还能主动“送花”。这就是面向对象的魅力:属性+方法,数据和行为一把抓。

JS 如何运行?

  • 后端:node 1.js,一行命令,代码飞起。
  • 前端:写个 HTML,浏览器一开,JS 就能“表演”。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    document 文档的方式
    <script src = "./1.js"></script>
</body>
</html>

代理模式:送花也能玩设计模式?

来点高级的!假如 lzy 想送花给 xm,但 xm 太高冷,怎么办?找闺蜜 xh 代理一下!

const xh = {
    xq: 30,
    name: 'xh',
    hometown: '江西萍乡',
    receiveFlower: function (obj) {
        setTimeout(() => {
            xm.xq = 99;
            xm.receiveFlower(obj);
        }, 3000);
    }
}

xh 和 xm 都有 receiveFlower 方法,接口一致,互换自如。xh 还能“拖延”一下,等时机成熟再帮 lzy 递花,这就是代理模式的精髓:

  • 接口一致:xh 和 xm 都有 receiveFlower,代码无缝切换。
  • 逻辑自由:代理怎么处理,全凭开发者发挥。
  • 面向接口编程:只要接口对,谁代理都行。

总结

JS 不只是写页面的小工具,它能用对象、方法、设计模式,把现实世界的复杂关系优雅地搬进代码里。下次你写 JS,不妨也试试“送花”——也许你的代码会更有温度,更有趣!