我可以向JavaScript中的对象添加公共函数吗?怎么用?

我可以向JavaScript中的对象添加公共函数吗?怎么用?,javascript,prototype-programming,Javascript,Prototype Programming,我肯定我把这个问题的措辞弄错了,但我不知道如何解释清楚 我有一个模糊的想法,我在某个地方读到过,我可以在JavaScript中向对象添加方法,我的意思是: function Exclaimify(aString) { return aString + "!"; } var greeting = "Hello"; alert(greeting.Exclaimify()) // this shows "Hello!" in an alert box 这可能吗?如果是这样的话,我该怎么做

我肯定我把这个问题的措辞弄错了,但我不知道如何解释清楚

我有一个模糊的想法,我在某个地方读到过,我可以在JavaScript中向对象添加方法,我的意思是:

function Exclaimify(aString)
{ 
    return aString + "!";
}

var greeting = "Hello";
alert(greeting.Exclaimify()) // this shows "Hello!" in an alert box

这可能吗?如果是这样的话,我该怎么做呢?

听起来您想使用名为的技术。那篇文章包含一个链接,可能会对您有所帮助。

将其作为变量分配给它。然后您可以使用
。轻松点

var obj = {foo: "bar"};

obj.someFunc = function()
{
    return this.foo;
}
那太好了。。。除了呃,除了,不是在字符串上,它对这个愚蠢的行为免疫。(它们是完全不可变的。)但是,还有另一种方法,那就是修改对象的“类”并在其中添加方法。我所说的“类”实际上是指“原型”。JavaScript。修改
字符串
原型的语法如下所示:

var greeting = "Hello";

String.prototype.Exclaimify = function()
{
    return this + "!";
}

alert(greeting.Exclaimify()) // this shows "Hello!" in an alert box

太棒了-正是我想要的。谢谢。你的链接文章没有被接受的答案那么简洁,但仍然准确。虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。两个快速评论:(1)不需要字符串(this),你知道“this”是一个字符串,因为你在String.prototype函数中;(2) 不要向Object.prototype或Array.prototype添加任何内容。如果你这样做了,你就不能再使用“for(数组中的var项)”语法了。@John Kugelman:修复了,谢谢。请不要用你自己的答案来扩展你的问题。如果您觉得有必要单独回答,请在下面张贴您自己的答案。