javascript this


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));

  }

};

Leave a Comment