2013-03-13 187 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