gpt4 book ai didi

javascript - 无限函数调用,例如 'string' .replace().replace()

转载 作者:行者123 更新时间:2023-12-03 00:55:52 26 4
gpt4 key购买 nike

我不太确定如何解释,所以我将从输出开始。我需要返回这个:

{
replies:
[
{ type: 'text', content: 'one' }
{ type: 'text', content: 'two' }
{ type: 'text', content: 'three' }
],
conversation: {
memory
}
}

我想通过内嵌语句返回它。所以我想这样称呼:

reply.addText('one').addText('two').addText('three').addConversation(memory)

请注意,addText 可以被无限次调用,而 addConversation 只能被调用一次。此外,对话是可选的,在这种情况下,如果不存在对话,则对话对象不应出现在输出中。

最佳答案

要创建自定义结构化对象,请使用构造函数,例如 Reply

要根据方法调用的返回值调用实例方法,请从该方法返回实例对象。

防止多次添加对话对象的选择包括抛出错误(如下所示)或可能记录警告,并且在第一次调用 addConversation 后不添加其他对象。

编写代码来实现需求。

例如使用普通 JavaScript:

function Reply() {
this.replies = [];
}
Reply.prototype.addText = function( content) {
this.replies.push( {type: "text", content: content});
return this;
}
Reply.prototype.addConversation = function( value) {
if( this.conversation) {
//throw new Error("Only one conversation allowed");
}
this.conversation = {conversation: value};
return this;
};
Reply.prototype.conversation = null;

// demo
var reply = new Reply();
reply.addText( "one").addText("two").addConversation("memory?");
console.log( JSON.stringify( reply, undefined," "));

(console.log 使用 JSON stringify 以避免列出继承的方法)

关于javascript - 无限函数调用,例如 'string' .replace().replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52841849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com