I was wondering if it was possible to get the width and height of an image without putting an image into page, i.e without creating an image tag that displays it.
trying to make a sprite class using this method.
function Sprite(src,frames) {
    // Sprite class 
    this.img = new Image();
    this.img.src = src;
    this.frames = frames;
    this.cframe = 1;
    this.setDim = function() {
      this.fullWidth = this.img.width;
      this.fullHeight = this.img.height;
    }
    this.img.onload = this.setDim();
    console.log(this.fullWidth);
    return this;
  }
however this.fullWidth returns undefined
and the below that ignores the onload returns 0
 function Sprite(src,frames) {
    // Sprite class 
    this.img = new Image();
    this.img.src = src;
    this.frames = frames;
    this.cframe = 1;
    this.fullWidth = this.img.width;
    this.fullHeight;
    this.setDim = function() {
      this.fullWidth = this.img.naturalWidth;
      this.fullHeight = this.img.height;
      console.log(this.fullWidth)
    }
    console.log(this.fullWidth)
    //this.img.onload = this.setDim();
    return this;
  }
I don't really want to use Jquery for this.
I have also tried this.img.natrualWidth (as you can see in the example above) 
it also returns 0
Any advice would be great, Thanks
Updated this to match @vihan1086 answer
      function Sprite(src,frames) {
    // Sprite class 
    this.img = new Image();
    this.img.src = src;
    this.frames = frames;
    this.cframe = 1;
    var self = this;
    self.loaded = function () {};
    this.setDim = function() {
      self.fullWidth = this.width;
      self.fullHeight = this.height;
      self.frameWidth = this.width / self.frames;
      self.frameHeight = this.height;
      self.loaded.apply(self, []);
    }
    this.loaded = function() {
      return this;
    }
    this.img.onload = this.setDim;
  }
then use
sprite = new Sprite(sprite,5);
    sprite.loaded = function() {
      console.log(sprite.fullWidth);
    }
 
     
     
    