我有这个示例代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
</head>
<body>
<script>
var EventHandler = {};
EventHandler.writeNumber = function(i){
document.write(i);
};
for(var i=0; i<100; i++) {
(function(i) {
window.setTimeout(function() {
EventHandler.writeNumber(i);
},100*i);
}(i));
}
</script>
</body>
</html>
代码每秒在页面上写入一个数字。在 Chrome 26 和 Safari 5 中运行良好!在 Firefox 18 和 IE10 中它只出现一次(0 写在文档上)。
如果我更改document.write
为console.log
,那么它适用于所有浏览器。这是为什么?