javascript - 我可以向 JavaScript 中的对象添加公共(public)函数吗?如何?

标签 javascript prototype-programming

我确定我这个问题的措辞是错误的,但我不知道如何解释好...

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

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

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

这可能吗?如果可以,我该怎么做?

最佳答案

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

var obj = {foo: "bar"};

obj.someFunc = function()
{
    return this.foo;
}

效果很好……除了!呃,除了,不是在琴弦上,它不受这种愚蠢行为的影响。 (它们是完全不可变的。)然而,还有另一种方法,即修改对象的“类”并在其中添加方法。我所说的“类”实际上是指“原型(prototype)”。 JavaScript doesn't have classes, it has prototypes .修改 String 原型(prototype)的语法如下所示:

var greeting = "Hello";

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

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

关于javascript - 我可以向 JavaScript 中的对象添加公共(public)函数吗?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1072442/

相关文章:

javascript - 将构造函数传递给 Array.map?

javascript绑定(bind)对象的原型(prototype)函数

javascript - 获取对二级原型(prototype)函数的 'this' 引用

javascript - 从页面中删除脚本元素及其 Action /事件

javascript - "this"将 JSONP 数组分配给 AngularJS Controller 时变量不起作用

javascript - 谷歌分析代码说明

javascript - 类似于 Cron 作业的刷新 Angular 组件

javascript - 将结构转换为另一个结构

javascript - 应用于函数引用/作用域的原型(prototype)继承和函数引用

javascript - __proto__ 与 constructor.prototype 有何不同?