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