【问题标题】:Why does Twitter redefine window.setTimeout and window.setInterval?为什么 Twitter 重新定义 window.setTimeout 和 window.setInterval?
【发布时间】:2011-12-24 01:43:36
【问题描述】:

我在研究推特源码,偶然发现了如下sn-p:

   window.setTimeout=window.setTimeout;window.setInterval=window.setInterval;

为什么 Twitter 重新定义这些功能?

编辑: 要查看代码,请转到任何 twitter 用户页面,打开页面的源代码,您将在第二个 javascript 块中看到 sn-p。

【问题讨论】:

  • 上下文是什么?如果没有完整代码的链接,我认为这个问题是无法回答的。

标签: javascript twitter settimeout setinterval


【解决方案1】:

这是一种以跨浏览器方式全局替换 setTimeoutsetInterval 函数的技术。

window.setTimeout,当用作左值时(在左侧 assignment),不走原型链,而是走在右边, 确实如此。所以这总是会从原型中拉出一个属性 链并把它放在物体上。

http://www.adequatelygood.com/2011/4/Replacing-setTimeout-Globally

【讨论】:

  • 我是这个答案的忠实粉丝。
  • 如果您不想阅读这篇文章:关键部分是用于解决 IE 中的错误。具体来说,赋值setTimeout = ...; 会引发异常,除非您使用上述技巧。 setInterval 和其他人也一样。
猜你喜欢
  • 2013-12-23
  • 1970-01-01
  • 2010-12-21
  • 2019-01-09
  • 1970-01-01
  • 2018-01-13
  • 2011-04-14
  • 2021-08-07
  • 1970-01-01
相关资源
最近更新 更多