likes
comments
collection
share

不是哥们,你家代码还想喝茶???

作者站长头像
站长
· 阅读数 21

前言

喝茶,是一种流传千年的文化习俗,也是许多人日常生活中的一部分,包括我本人也会时不时整上两口。简单来说,喝茶就是将茶叶放入杯中,用热水冲泡,待茶叶中的风味和营养成分溶解于水后,形成的饮品供人饮用。这一过程不仅能够享受到茶的香气与滋味,还常常伴随着放松心情、交流情感或是冥想静思等精神层面的享受。emmm....的确很不错昂

不是哥们,你家代码还想喝茶???

不是哥们,你真以为接下来我会来教你怎么喝茶吧 ?_ ?

哈哈哈哈哈哈哈哈,下次一定。好了好了,言归正传,开整

本章主要是带大家了解一下,JS里面的模版方法模式,让我们去看看代码怎么喝茶吧

代码:我想喝茶了

作为一名小小“服务员”,那么我们该怎么办呢?我也没给代码喝过茶啊,这不存心整我嘛?那么我们该怎么办呢?可是既然“客人”想喝茶,那必然得安排到位啊!

不是哥们,你家代码还想喝茶???

万物皆可编程

首先,就先来写个小小思路吧

先给代码泡一杯绿茶
准备好茶壶,把水煮沸
将茶叶放入茶壶中,用沸水浸泡茶叶
将茶水从茶壶中倒入茶杯
码哥,请喝茶

okok,喝茶的简易版就这样完成了,先给代码安排上吧

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>给代码上茶</title>
</head>
<body>
    <script>
        function Tea(type) {
                this.type=type
                console.log('给代码泡一杯'+ this.type)
            }
        var greenTea = new Tea('绿茶');
    </script>
</body>
</html>

码哥,这茶不就来了吗

  • Tea,首字母大写,在JS中,这是一种约定俗成的写法,用于区分普通的函数和构造函数,在早期是没有class这个关键字的。构造函数通常用于创建特定类型的对象,并且首字母大写。所以这边声明的是一个对象哦,并且对象是可以实例化的。

ok,开始给你整点小活吧,总不能让你喝“我画的大饼”吧

        Tea.prototype.boilWater = function(){
            console.log('准备好茶壶,把水煮沸')
        }
        Tea.prototype.steepTeaBag = function(){
            console.log('将茶叶放入茶壶中,用沸水浸泡茶叶')
        }
        Tea.prototype.pourInCup = function(){
            console.log('将茶水从茶壶中倒入茶杯中')
        }
        Tea.prototype.drinking = function(){
            console.log('码哥,请喝茶')
        }

安排是安排上了,怎么感觉不是特别行云流水呢??来整个模版接口给他串一起吧

Tea.prototype.init = function(){
           this.boilWater();
           this.steepTeaBag();
           this.pourInCup();
           this.drinking();
       }

这样的话,等下次代码想喝茶的时候,就只要 “挥一下手” 就OK了

那就挥一下手吧

var WantDrinkTea=new Tea('绿茶')
WantDrinkTea.init();

当然,如果想喝点其他口味的茶,就换一种茶(实例)就好咯

小小总结一下吧

  • 构造函数 (Constructor Function) : 如上文所提到的,Tea 是一个构造函数,用来初始化新创建的对象。通过 new Tea('绿茶') 创建实例时,this 指向新对象,也就是指向“绿茶”

  • 原型对象 (Prototype Object) : 每个构造函数都有一个默认的 prototype 属性,它是一个对象。这个原型对象的作用是为构造函数的所有实例提供共享的方法。就好比,我给 Tea.prototype 添加了 boilWater, steepTeaBag, pourInCup, drinking 这些方法,所有 Tea 实例都能访问到这些方法,而无需在每个实例上重新创建这些方法。

  • 原型链 (Prototype Chain): 当尝试访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,JS会向上搜索其原型对象(即 __proto__ 指向的对象),如果原型对象也没有,则继续向上搜索原型的原型,直到找到该属性或方法,或者到达原型链的顶端(通常是 Object.prototype)。这就形成了所谓的原型链。

  • 初始化方法 (init) 添加了一个 init 方法到 Tea.prototype 上,是一种组织代码的方式,这个方法作为一个“模板”,封装了泡茶的整个流程,确保一系列相关操作按序执行。这样做允许通过调用单个方法来执行一系列操作,使代码更加模块化和易于维护,可以提高了代码的结构性和可读性。

  • 实际应用 通过 var WantDrinkTea = new Tea('绿茶'); WantDrinkTea.init();,实际上完成了一系列动作:创建了一个新的 Tea 实例,并通过调用 init 方法,依次执行了泡茶的每一个步骤,实现了代码的“行云流水”。

不是哥们,你家代码还想喝茶???

欧克欧克,也是让自家的代码喝上了。不过,要是有个助理帮我完成就好咯

不是哥们,你家代码还想喝茶???

AI助手启动

想找助理??? 摇人~~!!

const OpenAI=require('openai');
require('dotenv').config();
const client = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY ,
    baseURL: "https://api.chatanywhere.tech/v1",
})
const getChatResponse = async function (model,prompt,n) {
    const reponse = await client.chat.completions.create({
        model: model, 
        messages: [
          {
            role: "user",
            content: prompt
          }
        ]
      });
    return reponse.choices[0].message.content;
}

const main =async () => {
    //Aigc 优势就是处理文本,生成内容
    const text =`
        泡一杯茶很容易。首先,需要把水烧开。
        在等待时期,拿一个杯子并把茶包放进去。
        一旦水烧开,就把他倒在茶包上。
        等待一会,让茶叶浸泡,几分钟后,取出茶包。
        如果你愿意,可以加一些糖或牛奶调味
        就这样,你可以享受一杯美味的茶
    `
    const prompt =`
        你将获得三个反引号括起来的文本
        
        如果他包含一系列的指令,则需要按照以下格式重新编写这些指令。
        第一步 -...
        第二步 -...
        第三步 -...
        ...
        第N步 -...

        如果文本中不包含一系列的指令,则直接写"未提供步骤"。
        """${text }"""
    `
    const result = await getChatResponse('gpt-3.5-turbo',prompt)
    console.log(result)
}
main();

OK,有了助理什么事都好说,想喝啥给你整啥

不是哥们,你家代码还想喝茶???

如果不会调用AI的话,那就翻翻 “牌子” 吧(前面有文章专门讲哦)

快去动手试试吧,有什么问题评论区见哦

写得不好的地方以及需要修改的地方,欢迎大佬亲临指正昂💞

转载自:https://juejin.cn/post/7372013979466924043
评论
请登录