【问题标题】:JavaScript "Counter" object, what is it?JavaScript“计数器”对象,它是什么?
【发布时间】:2013-03-13 11:20:46
【问题描述】:

我只是偶然注意到 WebKit 和 Firefox 在窗口中定义了一个名为“Counter”的全局变量。知道这是什么吗?

在 Chrome 上,它在手表中显示为:

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

注意:这个变量在 IE 上不存在(用版本 10 测试)

【问题讨论】:

  • 有趣的是,在 Chrome 中,Counter 是一个函数,而在 FF 中它似乎是一个对象。
  • 这可能是一个垃圾收集器,计算范围内对数据的引用次数吗?

标签: javascript html firefox webkit


【解决方案1】:

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

我相信这是说计数器用于垃圾收集,计算对任何给定数据的引用次数。直接或间接帮助它创建一个更准确的指针来调用该数据或从缓存中释放它?如果我错了,请纠正我,我是新手。谷歌比学习更有趣。

【讨论】:

  • 有趣。但是他们为什么要在页面上公开它呢?
  • 我想可以通过这种方式来提高他们的效率,作为开发人员操作浏览器默认垃圾收集,你不能利用这一点吗?
  • 我想知道。但是怎么做?在 Chrome 上您似乎无能为力。
  • 我用的是chrome,以前一直用safari。配置文件中的堆快照似乎是相关的,然后在底部您可以从下拉菜单中选择四个选项之一。支配者、遏制、比较和总结。
  • 这个价值超出我的想象;根据我发布的与垃圾收集有关的链接,您是否同意?我只是问,因为发布另一个问题可以阐明这个主题的价值,我认为这需要一个清晰的答案
【解决方案2】:

我能找到的最好的与 Rhino 有关: https://developer.mozilla.org/en-US/docs/Rhino/Embedding_tutorial#Counter_example

但在 webkit 中它无法实例化:

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]

【讨论】:

  • 我不认为是这样,因为 FF(在控制台中)中的 Counter 是一个对象,而不是一个函数。
  • @FelixKling true 但找不到任何其他参考。在谷歌上搜索“Javascript Counter”(及其衍生品)并不容易:p
  • 好吧,但它并没有真正回答这个问题,不是吗? ;)
  • 有趣。我想知道它在 Chrome 上意味着什么。
猜你喜欢
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多