Wann werden JavaScript-Objekte zerstört?

In C ++ kann ich einen Konstruktor und Destruktor explizit definieren und dann in der Konstruktor / Destruktor-Funktion << "C or D Called" mit angeben, um genau zu wissen, wo.

Wie kann ich jedoch in JavaScript feststellen, wann ein Objekt zerstört wurde? Das folgende Beispiel ist der Fall, der mich betrifft.

Ich rufe eine interne Funktion in einem Timeout auf und frage mich, ob das Objekt so lange am Leben bleibt, wie der Timer läuft, und warte auf den nächsten Aufruf.

User Click ruft Control auf

// Calls  Control

Steueranrufe Nachricht

var message_object = new Message( response_element );

Nachricht ruft Effekte auf

new Effects().fade( this.element, 'down', 4000 );
message_object.display( 'empty' );

Auswirkungen

/**
 *Effects - build out as needed
 *  element - holds the element to fade
 *  direction - determines which way to fade the element
 *  max_time - length of the fade
 */

var Effects = function(  ) 
{
    this.fade = function( element, direction, max_time ) 
    {
        element.elapsed = 0;
        clearTimeout( element.timeout_id );
        function next() 
        {
            element.elapsed += 10;
            if ( direction === 'up' )
            {
                element.style.opacity = element.elapsed / max_time;
            }
            else if ( direction === 'down' )
            {
                element.style.opacity = ( max_time - element.elapsed ) / max_time;
            }
            if ( element.elapsed <= max_time ) 
            {
                element.timeout_id = setTimeout( next, 10 );
            }
        }
        next();
    }
};

Antworten auf die Frage(4)

Ihre Antwort auf die Frage