2013-03-13 186 views
6

我剛纔注意到WebKit和Firefox在窗口中定義了一個名爲「Counter」的全局變量。任何想法是什麼?JavaScript「Counter」對象,它是什麼?

在Chrome,它顯示爲這樣的鐘表:

Counter: function Counter() { [native code] } 

注:此變量不存在於IE

+2

有趣的是,在Chrome中,Counter是一個函數,而在FF中它似乎是一個對象。 – 2013-03-13 11:29:27

+0

這可能是垃圾收集器,計算範圍內的數據引用數量? – 2013-03-13 11:48:08

回答

2

http://blog.peschla.net/doxygen/v8_chromium_r157275/v8-counters_8h.html

我相信這是說計數器是垃圾收集,引用的次數累計到任何給定的數據。直接或間接幫助它創建一個更準確的指針來調用數據或從緩存中釋放數據?糾正我,如果我錯了,我是新的..它只是更有趣的谷歌比學習。

+0

有趣。但是,他們爲什麼會在網頁上公開? – 2013-03-13 12:58:10

+0

我想這可以通過這種方式來達到更高效的效果,並且你不能利用這個作爲開發人員操縱瀏覽器默認垃圾收集的優勢嗎? – 2013-03-13 13:10:37

+0

我想知道。但是如何?在Chrome上你看不到這一點。 – 2013-03-13 13:27:23

2

(含10版測試)我能找到的最好的是犀牛有關: https://developer.mozilla.org/en-US/docs/Rhino/Embedding_tutorial#Counter_example

但在WebKit的它不能instanctiate:

var c = new Counter(7) 
TypeError: Illegal constructor 

var c = Counter(7) 
TypeError: Illegal constructor 

在壁虎:

[12:33:24.608] var c = Counter(7) 
[12:33:24.609] TypeError: Counter is not a function 
[12:33:29.049] var c = new Counter(7) 
[12:33:29.051] TypeError: Counter is not a constructor 
[12:33:31.043] Counter 
[12:33:31.046] [object Counter] 
+0

我不認爲這是因爲FF中的Counter(在控制檯中)是一個對象,而不是一個函數。 – 2013-03-13 11:28:52

+0

@FelixKling爲true,但無法找到任何其他參考。在google上搜索「Javascript Counter」(它的派生詞)並不容易:p – fmsf 2013-03-13 11:32:29

+0

好吧,但是它並沒有真正回答這個問題,不是嗎? ;) – 2013-03-13 11:37:23