[ js ] closure 與 garbage collection 問題?
我想請問在下面這個例子中,outer 所在的層級,closure.height 會不會被回收?
而 closure 又是否會被回收?@@
inner 這層的 cat object 被回傳到 outer 這層,而 cat.age 這 function 又 refer
closure.age 這個變數,所以 closure.age 一定不會被回收。
closure.height 照理說沒有被 refer,到了 outer 曾經應該會被回收。
問題比較大的是 closure,照理說 closure 沒有被 refer,應該會被回收。
可是 closure 有個 property age 被 refer,這樣還能夠說 closure 沒有被 refer 嗎?
但理論上說起來,應該是可以被回收才對。不知道有沒有人知道這問題的答案?
或者可以提供找出答案的試驗方法?@@
// JSBin http://jsbin.com/ohudi5/2/edit#js //
javascript:(function()
{
// outer. //
var cat = (function()
{
// inner. //
var closure =
{
height: 3
};
var cat =
{
age: function(age)
{
if (!arguments.length)
return closure.age;
closure.age = age;
return this;
}
};
return cat;
})();
console.log( cat.age(3).age() );
})();
--
Oni devas ami animalojn. Ili estas tiel bongustaj.
One should love animals. They are so tasty.
每個人都應該愛動物,他們是如此美味。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.180.52.50
※ 編輯: B9 來自: 175.180.52.50 (06/18 23:37)
→
06/19 01:30, , 1F
06/19 01:30, 1F
→
06/19 01:32, , 2F
06/19 01:32, 2F
→
06/19 01:34, , 3F
06/19 01:34, 3F
→
06/19 01:37, , 4F
06/19 01:37, 4F
推
06/19 01:47, , 5F
06/19 01:47, 5F
→
06/19 01:48, , 6F
06/19 01:48, 6F
→
06/19 01:50, , 7F
06/19 01:50, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章