JSFiddle - React, Tailwind, and code Playground
HTML
<!--
Expected output:
0 0 3 (background becomes orange immediately) 1 2 5
-->
JavaScript
var x = ' 0 '; // a global variable
document.body.innerHTML += x;
document.body.innerHTML += window.x;
// setTimeout before overriding
setTimeout(function () {
document.body.innerHTML += ' 1 ';
}, 500);
// window.setTimeout before overriding
window.setTimeout(function() {
document.body.innerHTML += ' 2 ';
}, 1000);
// Overriding setTimeout
function setTimeout(f, time) {
'use strict';
if (typeof f === 'function') {
document.body.innerHTML += ' 3 ';
}
}
// setTimeout after overriding
setTimeout(function () {
document.body.innerHTML += ' 4 ';
}, 1000);
// window.setTimeout after overriding setTimeout globally
window.setTimeout(function () {
document.body.innerHTML += ' 5 ';
}, 2000);
// Overriding window.setTimeout
window.setTimeout = function (f, time) {
'use strict';
if (typeof f === 'function') {
document.body.style.backgroundColor = 'orange';
}
};
// window.setTimeout after overriding
window.setTimeout(function () {
document.body.innerHTML += ' 6 ';
}, 3000);