window.name = "Window Doe"; var globalGreet = function() { return "My name is " + this.name; // this refers to window }; console.log( globalGreet() ); // returns 'My name is Window Doe' var johnDoe = { name : "John Doe", greet : globalGreet }; console.log( johnDoe.greet() ); // returns 'My name is John Doe' var person = { name : "John Doe", greet : function() { return "Hi there " + this.name; // this refers to person } }; console.log( person.greet() ); // returns 'My name is John Doe' var bindDoe = { name : "Bind Doe", greet : window.globalGreet.bind(window) }; console.log( bindDoe.greet() ); // returns 'My name is Window Doe'
Example:
var makeRequest = function(url, callback) { // make the request with the provided url var data = 10; // json text xml callback(data); }; var obj = { someValue : 20, loadData : function(data) { var sum = this.someValue + data; alert(sum); // alerts '30' }, prepareRequest : function() { var url = "http://numberservice.com"; makeRequest(url, this.loadData.bind(this)); } };