当我们有像这样的代码:
function a(){
var x =0;
this.add=function(){
alert(x++);
}
}
var test = new a();
test.add(); // alert 0
test.add(); // alert 1
test.add(); // alert 2
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?如果test = new a()完成,那么()中'x'的值是否应该'消失'?包含x的堆栈也应该也消失了吧?或者,javascript是否始终保留所有堆栈,以防将来引用它们?但这不会很好,是不是......?