window.global_array = new Array();
window.example = function()
{
var x = new Object();
x['test_property'] = 3;
global_array.push(x);
}
Javascript专家,请回答三个问题:
答案 0 :(得分:4)
x
将被删除,因为它的范围仅限于函数体(您使用var
关键字来确保这一点。声明没有var的变量将是全局的,即使在函数体内也是如此。但是,值 x
将继续出现在global_array
中。由于x
引用了一个对象,因此赋值(通过push()
)会增加引用计数。当x
超出函数末尾的范围时,这不会将引用计数减少到0,因此对象仍然存在 - 它现在仅在global_array
内引用。