基于以下封装变量productId的方式,对ProductId.get()的调用是否保证返回先前设置的值,或者该值可能已被垃圾收集,因此未定义?
var ProductId = (function () {
var productId = -1;
return {
get: function () {
return productId;
},
set: function (val) {
productId = parseInt(val, 10);
}
};
})();例如,如果我调用ProductId.set(1234),然后在一段时间后调用ProductId.get(),它会是GC吗?看起来,虽然我不能100%确定,但没有直接引用封装的变量productId,因此它将是GC。
发布于 2015-06-16 18:16:59
在脚本使用的任何时候都可以访问productId,这是闭包的经典例子,get和set方法即使在匿名函数被执行之后仍然可以访问productId变量。
https://stackoverflow.com/questions/30864516
复制相似问题