So when it comes to working with canvas there is the get image data method that can be used to get image data from a canvas. In addition there is also the put image data method as well that can be used to put that data into a canvas, and there is also the ImageData constructor that can be used to create an instance of image data from scratch.
What is returned is an instance of the ImageData constructor.
So once I have an instance of ImageData I can then do something with that data, but then I might want to draw that data back to a canvas element. So this is where the put image data method comes into play.
I might want to just create an instance of ImageData by itself without having to use the get image data method to do so.