我最近一直在深入研究 JavaScript 以完全理解该语言,并且有一些我似乎无法找到答案的唠叨问题(特别是处理面向对象的编程)。
假设以下代码:
function TestObject()
{
this.fA = function()
{
// do stuff
}
this.fB = testB;
function testB()
{
// do stuff
}
}
TestObject.prototype = {
fC : function
{
// do stuff
}
}
函数fA
和 和有什么不一样fB
?他们的行为范围和潜在能力是否完全相同?它只是惯例还是技术上更好或更合适的一种方式?
如果在任何给定时间只有一个对象的实例,那么在原型中添加一个函数fC
是否值得?这样做有什么好处吗?只有在处理对象或继承的许多实例时,原型才真正有用吗?
从技术上讲,以我上面的方式或TestObject.prototype.functionName = function(){}
每次调用的方式向原型添加方法的“正确”方式是什么?
我希望保持我的 JavaScript 代码尽可能干净和可读,但我也对语言中对象的正确约定非常感兴趣。我来自 Java 和 PHP 背景,我试图不对 JavaScript 的工作方式做出任何假设,因为我知道它与基于原型的非常不同。