JavaScript - 使用 new 关键字的标准

标签 javascript memory var

这是一个与内存使用和“new”关键字相关的问题。我需要您在本地方法中使用"new"的建议和偏好。

get: function ()
{
    <b>var get = new Ajax.Updater</b>('resourceList',
    "url",
    {
        method: 'POST',
        onComplete: this._onComplete.bind(this)
    });
}

在上面的代码中,我将对象赋给了一个没有在任何地方使用的局部变量,我也可以用下面的方式编写代码

get: function ()
{
    <b>new Ajax.Updater</b>('resourceList',
    "url",
    {
        method: 'POST',
        onComplete: this._onComplete.bind(this)
    });
}

这里我没有将对象分配给任何变量。

我现在有点困惑。哪种方式更好,分配给变量还是不分配给变量?如果我在局部方法范围之后分配给一个变量,该对象将从内存中删除,但如果我不分配会发生什么?它会被垃圾收集处理吗?什么是最好的方法?我个人更喜欢分配给一个变量;那是对的吗?如果我不分配给变量,对象什么时候会被销毁?

最佳答案

JavaScript 垃圾收集器将处理超出范围且不再可访问的项目;这对于您的 Ajax.Updater 对象来说都是正确的,无论您是否将它分配给变量。

至于要不要赋值给变量? 我不会。它清楚地表明没有其他东西再次引用该对象。如果您将它分配给一个变量,人们就会开始寻找该变量的使用位置。

垃圾收集器非常聪明。您很少需要担心垃圾收集器是否会捡起一些东西。在 99.99999999% 的情况下,它会。

关于JavaScript - 使用 new 关键字的标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11117503/

相关文章:

javascript - JavaScript 中的异步函数是什么? JavaScript 中的 "async"和 "await"是什么?

javascript - JavaScript中变量的范围是什么?

javascript - 我需要将参数从外部函数传递到内部函数

javascript - polymer 网络组件跨浏览器兼容性

c++ - gp_camera_file_get 是如何工作的?

python - 使用 Scapy 从 pcap 文件读取 session 可以提高内存效率吗

c++ - 具有持久查找的线性内存容器?

javascript - Gamedesign "group"用于静音和取消静音的 html5 音频元素

node.js - 在node.js中显示网页上变量的内容

javascript - 遍历父容器的子容器