所以我想我快疯了。我尝试在代码中使用原型(prototype),因此我将有一个 Layer 对象,该对象将具有一个包含 _newFigure 函数的 Figure 对象。
Layer = function(){}
Layer.prototype.figure = function(){}
Layer.prototype.figure.prototype._newFigure = function(){
//(Creates new Figure)
}
我对伪代码的期望:
[LayerObject]{
figure:{
_newFigure:function(){
//(Creates new Figure)
}
}
}
现在,对我来说,这是合乎逻辑的事情,但由于某种原因它不起作用。 你现在知道我怎样才能做到这一点吗?请记住,出于性能原因,我使用原型(prototype)。
-- 提前致谢 --
更新-------------------------------------------------------- --------------------------------------------------------------------
正如Nick所说“为什么Layer需要在其原型(prototype)上有一个Figure?看起来Layer和Figure是我们独立的实体,并且Layer可以附加一个Figure实例.只是一个想法:)"
所以,我已经更新了代码(现在可以工作)
Layer = function(){
this.figure = new figureHandler(this);
}
function figureHandler(layer){
this.layer = layer;
}
figureHandler.prototype._newFigure = function(){
//(Creates new Figure)
}
--再见!感谢您的帮助:) --
最佳答案
下面的内容对您有用吗?
Figure = function() {};
Layer = function() {};
Layer.prototype.figure = function() {
return new Figure();
};
让我有点困惑的是,当layer.figure
可以为您创建一个新的图形对象时,为什么您会想要一个像layer.figure._newFigure
这样的接口(interface)。也许您的用例对我来说还不够清楚。
编辑:根据我最初回复的评论,我认为您的意思是这样的:
Figure = function(layer) {
this.layer = layer;
};
Layer = function() {};
Layer.prototype.figure = function() {
return new Figure(this);
};
关于JavaScript:如何访问另一个对象内的对象的原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631978/