Default binding
function display(){
console.log(this);
}
display();
Implicit binding
var obj = {
name: 'Saurabh',
display: function(){
console.log(this.name);
}
};
obj.display();
var name = "uh oh! global";
var outerDisplay = obj.display;
outerDisplay();
function setTimeout(callback, delay){
callback();
}
setTimeout( obj.display, 1000 );
var name = "uh oh! global";
setTimeout( obj.display, 1000 );
Explicit hard binding
var name = "uh oh! global";
obj.display = obj.display.bind(obj);
var outerDisplay = obj.display;
outerDisplay();