Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-使用新关键字的标准_Javascript_Memory_Var - Fatal编程技术网

JavaScript-使用新关键字的标准

JavaScript-使用新关键字的标准,javascript,memory,var,Javascript,Memory,Var,这是一个与内存使用和“new”关键字有关的问题。我需要你的建议和偏好使用“新”在当地的方法 get: function () { var get = new Ajax.Updater('resourceList', "url", { method: 'POST', onComplete: this._onComplete.bind(this) }); } get:function() { var get=new Ajax.Updat

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

get: function ()
{
    var get = new Ajax.Updater('resourceList',
    "url",
    {
        method: 'POST',
        onComplete: this._onComplete.bind(this)
    });
}
get:function()
{
var get=new Ajax.Updater('resourceList',
“网址”,
{
方法:“POST”,
onComplete:这个。\ onComplete.bind(这个)
});
}
在上面的代码中,我将对象分配给一个局部变量,该变量在任何地方都不使用,我也可以用以下方式编写代码

get: function ()
{
    new Ajax.Updater('resourceList',
    "url",
    {
        method: 'POST',
        onComplete: this._onComplete.bind(this)
    });
}
get:function()
{
新的Ajax.Updater('resourceList',
“网址”,
{
方法:“POST”,
onComplete:这个。\ onComplete.bind(这个)
});
}
这里我没有将对象分配给任何变量


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

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

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


垃圾收集器非常聪明。您很少需要担心垃圾收集器是否会拾取某些内容。在99.99999999%的情况下,它将被指定。

如果您随后需要访问对象,则只应将其指定给变量。无论哪种方式,对象都将被垃圾收集,因此您最好保存一个变量声明和几个字节。

我认为构造函数不如定义私有变量并接受相同参数的函数那么合适。 构造不需要引用的东西有什么意义?您在理解代码时给我们带来了一些问题:P