JavaScript - 使用新关键字的标准

时间:2012-06-20 10:21:54

标签: javascript memory var

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

JavaScripts垃圾收集器将处理超出范围的项目,并且不再可访问;对于Ajax.Updater对象,无论是否将其分配给变量,都是如此。

那么你是否应该将它分配给变量? 我不会。它清楚地表明没有别的东西再次引用那个对象。如果将其分配给变量,人们将开始查看该变量的使用位置。

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

答案 1 :(得分:0)

如果您随后需要访问该对象,则只应将其分配给变量。无论哪种方式,对象都将被垃圾收集,因此您也可以保存自己的变量声明和几个字节。