0
如果我在对象的构造函数外声明基础原型对象,则所有创建的对象都基于该单个基础对象,这不适合我的需要,因为我需要基础对象的多个实例。JavaScript原型继承 - 这是做事的正确方式吗?
总之:这段代码是否正确?它的工作原理,但我很挑剔有正确的代码。
例子:
function BaseObject()
{
BaseObject.prototype.insertObject = function()…
…
… // Some other functions.
}
function Object1()
{
Object1.prototype = new BaseObject();
Object1.prototype.coolFunction = function()…
…
… // Same kind of pattern.
}
function Object2()
{
Object2.prototype = new Object1();
Object2.prototype.incredibleFunction = function()…
…
… // You get the idea.
}
如果我做'Object1.prototype =新BaseObject();'在构造函数之外,从Object1创建的每个对象都依赖于BaseObject的单个实例。我需要一种方法来创建BaseObject的新实例。 – user1092719 2012-02-09 19:46:18
即使您在构造函数中执行它,情况依然如此。 'Object1'的每个实例都共享Object1.prototype,因此每次重新分配Object1时,所做的每件事情都是使每个Object1实例都依赖于同一个新构建的原型BaseObject。 – Domenic 2012-02-09 19:48:20
但是,当我在我的实际代码中这样做时,它的工作原理与我需要的一样,因为每次构造函数被调用时,都会将该对象上的原型设置为“BaseObject”的新创建实例,然后重复该模式并它工作正常。有一个干净和正确的方法来做到这一点。 – user1092719 2012-02-09 19:56:11