gpt4 book ai didi

javascript - 将相同的功能添加到许多元素(使用js原型(prototype)?)

转载 作者:行者123 更新时间:2023-12-02 20:30:04 27 4
gpt4 key购买 nike

在我的应用程序中,我收到了 JSON 格式的评论集合。

然后,我想向该集合中的每个项目添加函数,例如,如果评论有 comment.first_namecomment.last_name,我想构建comment.full_name().

到目前为止,我正在做:

comment.full_name = function() { return this.first_name+" "+this.last_name }

我的问题是,由于有很多注释(以及其他比这个更复杂的方法),我如何使用原型(prototype)构造函数将相同的功能添加到集合中的每个项目,而不将其插入到每个元素中?

编辑:

以下是代码示例:

comments = ({"1": {"first_name":"John", "last_name":"Silver"}, "2": {"first_name":"Jack", "last_name":"Sparrow"}})

现在,我正在寻找能够返回的东西

comments[1].name() //=> John Silver
comments[2].name() //=> Jack Sparrow

最佳答案

为了回答您的直接问题,您可以通过将对象的原型(prototype)附加到带有 prototype 的原型(prototype)链来附加到该原型(prototype)。关键词。要附加函数,full_name()comment对象的原型(prototype),你会这样做:

comment.prototype.full_name = function () {
if (typeof(this.first_name) !== "undefined" && typeof(this.last_name) !== "undefined") {
return this.first_name + " " + this.last_name;
} else {
return ""
}
};

编辑:

上面的代码也适用于您的情况。它将附加一个属性, full_name JSON 对象中的每个值。 full_name是一个函数。它将返回一个连接字符串,其中包含当前对象的 first_name属性、空格和当前对象的 last_name属性,只要这两个属性都不是 undefined 。如果其中一个或两个都是,它将返回 empty string .

关于javascript - 将相同的功能添加到许多元素(使用js原型(prototype)?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299834/

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