JavaScript 解构器

Ada*_*luk 5 javascript ajax

有什么方法可以在 JavaScript 中为对象定义析构函数,当对象被丢弃时会自动调用该析构函数吗?

我像这样创建我的 obj:

function SomeObject(){
    this.test = null;

    this.method = function(){
      alert("Testing Method");
    };

    this.destroy = function(){
      // Destroy stuff here
    };
}

var test = new SomeObject();
Run Code Online (Sandbox Code Playgroud)

我可以在需要时调用 destroy,但是当用户退出页面时我无法调用 destroy。我需要这样做的原因是我使用 ajax 调用 php 中的函数来保存会话数据。我希望它在处理完特定的 js 对象后销毁特定的会话数据。

有任何想法吗?

zzz*_*Bov 3

您不能对对象使用解构函数,但可以使用window.onbeforeunloadwindow.onunload进行任何最后一刻的调整。

如果从中返回一个字符串,onbeforeunload则会以对话框的形式提示用户该字符串confirm是否要离开。如果您想提示用户保存他们的工作或一些类似的状态保存操作,这主要很有用。