JavaScript:如何访问另一个对象内的对象的原型(prototype)?

标签 javascript object prototype

所以我想我快疯了。我尝试在代码中使用原型(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/

相关文章:

javascript - 我应该修改字符串的原型(prototype)吗?

javascript - 基于属性值的 Firebase Firestore 安全规则

javascript - 在 lambda.js 中运行 AWS Firehose 会出现未定义的错误

javascript - 如何在 Joi 中的值上验证具有两个最大条件的对象?

php - 按一个属性对对象数组进行排序

c#对象到字符串以文本格式显示它

javascript - 如何在 javascript 中使用正则表达式获取文本

javascript - 如何将 promise 的返回值分配给对象键?

javascript - 是否可以将方法附加到没有原型(prototype)属性的构造函数/函数?

javascript - 如何禁用原型(prototype)中的输入元素?