Actionscript 3 AS3-删除正在执行代码的对象时会发生什么?

Actionscript 3 AS3-删除正在执行代码的对象时会发生什么?,actionscript-3,oop,Actionscript 3,Oop,如果当前正在执行函数的对象删除了其所有引用,会发生什么情况 我想让程序的主类在数组中保存一个对话框类型的对象,当需要关闭对话框时,我想在关闭屏幕功能期间将其从数组中删除。我的问题是,假设对话框对象在所有其他方面都符合垃圾收集的条件,那么它应该执行的代码会发生什么变化 编辑以澄清: 数组是程序中的一层可视元素,对话框就是其中之一。其思想是,关闭该框的“确定”按钮(或其他任何按钮)也会将其从同时显示的对象数组中删除。如果有对象引用它(在您的情况下,调用其中的方法),则您的对象将不符合垃圾收集的条件

如果当前正在执行函数的对象删除了其所有引用,会发生什么情况

我想让程序的主类在数组中保存一个对话框类型的对象,当需要关闭对话框时,我想在关闭屏幕功能期间将其从数组中删除。我的问题是,假设对话框对象在所有其他方面都符合垃圾收集的条件,那么它应该执行的代码会发生什么变化

编辑以澄清:
数组是程序中的一层可视元素,对话框就是其中之一。其思想是,关闭该框的“确定”按钮(或其他任何按钮)也会将其从同时显示的对象数组中删除。

如果有对象引用它(在您的情况下,调用其中的方法),则您的对象将不符合垃圾收集的条件

如果您想使您的对话框符合从其内部进行垃圾收集的条件,那么您需要添加一个方法来处理从它可能在其中的数组中进行的自删除,等等

你的可能看起来像这样

public function destroy():void
{
    var ix:int = someArray.indexOf(this);
    someArray.splice(ix, 1);

    if(parent)
        parent.removeChild(this);

    // ...remove event listeners, etc
}

如果存在引用对象的对象(在您的情况下是调用其中的方法),则您的对象将不符合垃圾收集的条件

如果您想使您的对话框符合从其内部进行垃圾收集的条件,那么您需要添加一个方法来处理从它可能在其中的数组中进行的自删除,等等

你的可能看起来像这样

public function destroy():void
{
    var ix:int = someArray.indexOf(this);
    someArray.splice(ix, 1);

    if(parent)
        parent.removeChild(this);

    // ...remove event listeners, etc
}

如果在执行该对象的函数时删除了对该对象的所有引用,则该函数的其余部分将继续执行。完成后,该对象将在下一个垃圾收集周期中删除。

如果在执行该对象的函数时删除了对该对象的所有引用,则该函数的其余部分将继续执行。完成后,该对象将在下一个垃圾收集周期中被删除