I am trying to make an object with a get function that takes in a URL, creates a GET request, then returns the responseText. But, with my current code, whenever I try to log it I get undefined.
var HttpRequest = function() {
  this.get = function(url, callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
      if(httpRequest.readyState == 4 && httpRequest.status == 200) {
        callback = httpRequest.responseText;
      }
    };
    httpRequest.open("GET", url, true);
    httpRequest.send(null);
    return callback;
  };
};
var request = new HttpRequest();
var response = request.get("https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=BTC,USD");
console.log(response);
EDIT: After this question got marked as a duplicate, I look at the question that I 'duplicated' and I fixed my problem, but I don't understand why return won't work. I have updated my code to something that SHOULD work, but doesn't. A callback is a function that is called after something is completed, but why won't return work in place of it?
Updated code: var HttpRequest = function() { this.get = function(url) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
      if(httpRequest.readyState == 4 && httpRequest.status == 200) {
        return httpRequest.responseText;
      }
    };
    httpRequest.open("GET", url, true);
    httpRequest.send(null);
  };
};
var request = new HttpRequest();
var response = request.get("https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=BTC,USD", "blank");
console.log(response);
