这是一个与内存使用和“新”关键字相关的问题。我需要您在本地方法中使用“新”的建议和偏好。
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)
});
}
这里我没有将对象分配给任何变量。
我现在很困惑。哪种方式更好,分配给变量或不分配给变量?如果我在本地方法范围之后分配一个变量,那么该对象将从内存中取出,但如果我不分配将会发生什么?它会被垃圾收集处理吗?什么是最好的方式?我个人更喜欢分配一个变量;那是对的吗?如果我没有分配变量,对象何时会被销毁?
答案 0 :(得分:2)
JavaScripts垃圾收集器将处理超出范围的项目,并且不再可访问;对于Ajax.Updater
对象,无论是否将其分配给变量,都是如此。
那么你是否应该将它分配给变量? 我不会。它清楚地表明没有别的东西再次引用那个对象。如果将其分配给变量,人们将开始查看该变量的使用位置。
垃圾收集器非常聪明且聪明。您很少需要担心垃圾收集器是否会拾取某些东西。在99.99999999%的情况下,它会。
答案 1 :(得分:0)
如果您随后需要访问该对象,则只应将其分配给变量。无论哪种方式,对象都将被垃圾收集,因此您也可以保存自己的变量声明和几个字节。