我正在研究Twitter源代码,我遇到了以下片段:
window.setTimeout=window.setTimeout;window.setInterval=window.setInterval;
为什么Twitter重新定义了这些功能?
编辑: 要查看代码,请转到任何Twitter用户页面,打开页面源,您将在第二个javascript块中看到该代码段。
答案 0 :(得分:15)
这是一种以跨浏览器方式全局替换setTimeout
和setInterval
函数的技术。
window.setTimeout
,当用作左值时(在左侧) 任务),不走原型链,但在右侧, 它确实。因此,这将始终从原型中取出一个属性 链并把它放在物体上。
请参阅http://www.adequatelygood.com/2011/4/Replacing-setTimeout-Globally。