<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Plunker</title>
</head>
<body>
<script>
// Allows Plunker to display logs in preview panel
// for better in-browser experience
var originalConsoleLog = console.log
console.log = function() {
originalConsoleLog.apply(console, arguments)
var args = Array.prototype.slice.call(arguments).map(JSON.stringify);
document.body.innerText += args.join(' ') + '\n';
document.body.style['fontFamily'] = 'monospace';
document.body.style['fontSize'] = '1.5em';
};
</script>
<script src="script.js"></script>
</body>
</html>
// Part 1
const outerThis = this;
const func = () => {
console.log(this === outerThis);
};
func();
func.call(null);
func.apply(undefined);
func.bind({})();
// Part 2
const counter = {
count: 0,
incrementPeriodically() {
setInterval(() => {
console.log(++this.count);
}, 1000);
}
};
counter.incrementPeriodically();