标题的措辞可能需要重新访问,但现在请考虑以下代码:
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
的构造函数,但理想情况下我希望让子控件独立于任何特定类型的父控件。
答案 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();