Skip to content

Instantly share code, notes, and snippets.

import inspect
def decorator_wrapper(parameter):
print parameter
def decorator(func):
def wrapper(message):
print "Wrapper start"
func(message)
print "Wrapper end"
@happymishra
happymishra / executionContextStackExample.js
Last active June 16, 2019 06:42
Executuon context stack example
console.log("Inside global execution context")
// 'a' will be stored on ECS as it's a primitive value
var a = 10;
// Only reference of functionOne will be stored inside stack.
// funtionOne definition itseld will be stored on heap
function functionOne() {
console.log("Inside functionOne exectuon context")
var log = console.log
log("Inside global execution context")
function functionOne() {
log("Inside function one")
function setTimeoutFunction() {
log("Inside setTimeoutFunction: I will be executed atleast after 1 sec")
}
var log = console.log
log("Inside global execution context")
function functionOne() {
log("Inside function one")
function setTimeoutFunction() {
log("Inside setTimeoutFunction: I will be executed after ECS become empty." +
"Though my waiting time is zero")
var a = [1, 2, 3, 4]
for (var ai = 0; ai < a.length; ai++) {
setTimeout(function(){
// By the time this code will be executed, all the iterations of
// for loop would have completed and value of ai would be 4
console.log("Value of 'ai': " + ai)
}, 1000)
function printStatement() {
console.log("I will be printed after 100 milliseconds")
}
setTimeout(printStatement, 100)
/* ******* Alternate syntax ******************/
/*
setTimeout can be written as this also
function printStatement() {
console.log("I will be printed after 0 milliseconds")
}
setTimeout(printStatement, 0)
console.log("Still, I will be executed first")
/* Output:
Still, I will be executed first
function multiplyByTwo (num) {
console.log(num + " multiplied by 2 is " + num*2)
}
// Syntax - setTimeout(callbackMethod, delay, param1, param2, ..)
setTimeout(multiplyByTwo, 100, 4)
// Output:
// 4 multiplied by 2 is 8
var timerId = setTimeout(function (){
console.log("This function will be removed before it's executed")
}, 100)
clearTimeout(timerId)
// No output will be displayed as the setTimeout callback function
// will be cancelled before it will be executed
// Web Share APIs are provided by navigator.share method
if (navigator.share) {
console.log("Web Share APIs are supported")
} else {
console.log("Web Share APIs are not supported")
}