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

MGO*_*wen 9 javascript prototype-programming

我确信我已经说错了这个问题,但我不知道如何解释它......

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

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

var greeting = "Hello";
alert(greeting.Exclaimify()) // this shows "Hello!" in an alert box
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,我该怎么办?

Joh*_*ica 24

分配给它就像它是一个变量.然后你可以使用this.简单!

var obj = {foo: "bar"};

obj.someFunc = function()
{
    return this.foo;
}
Run Code Online (Sandbox Code Playgroud)

这很好......除了!呃,除了不是字符串,这对这种愚蠢的行为免疫.(它们是完全不可变的.)但是,还有另一种方法,即修改对象的"类"并在那里添加方法.而"阶级"我的意思是"原型".JavaScript 没有类,它有原型.修改String原型的语法如下所示:

var greeting = "Hello";

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

alert(greeting.Exclaimify()) // this shows "Hello!" in an alert box
Run Code Online (Sandbox Code Playgroud)