【问题标题】:JavaScript - standard in using new key wordJavaScript - 使用新关键字的标准
【发布时间】:2012-06-20 10:21:54
【问题描述】:

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

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)
    });
}

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

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

【问题讨论】:

  • 我认为构造函数不像定义私有变量并接受相同参数的函数那样合适。构建不需要参考的东西有什么意义?
  • 您在理解您的代码时给我们造成了一些问题:P stackoverflow.com/questions/11117654/in-javascript

标签: javascript memory var


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    仅当您随后需要访问该对象时,才应将其分配给变量。无论哪种方式,对象都会被垃圾回收,因此您最好为自己保存一个变量声明和几个字节。

    【讨论】:

      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多