我怎样才能提到孩子的父母?

时间:2014-06-10 15:15:46

标签: javascript function oop object instances

标题的措辞可能需要重新访问,但现在请考虑以下代码:

var ParentControl = function()
{
    this.ShowAlert = function()
    {
        alert('hi!');
    }

    this.childControl = new ChildControl();
};

var ChildControl = function()
{
    // IN THIS SCOPE HERE I NEED TO CALL 'ShowAlert'
};

var parentControl = new ParentControl();

根据上面代码段中的评论,我需要ChildControl的实例来调用' ShowAlert'他们的父母的功能,但我不知道如何。

我尝试过的事情

只需拨打ParentControl.ShowAlert()我写过评论的地方 - 显然不能正常工作parentControl就是实例(我不想明确地引用这个内容)

我还尝试将父控件传递给ChildControl的构造函数,但理想情况下我希望让子控件独立于任何特定类型的父控件。

1 个答案:

答案 0 :(得分:1)

我还将showAlert移动到原型上,因此每次实例化ParentControl时都不会在内存中创建新函数。

var ParentControl = function() {
    this.childControl = new ChildControl(this);
};

ParentControl.prototype.showAlert = function() {
  console.log('hello');
};

var ChildControl = function(parent) {
  parent.showAlert();
};

var parentControl = new ParentControl();