Yes you can, maybe the best way to understand is to see it:
Do you see the difference between the outputs of the snips?
In the first snip duck has a function “eat” AND canary has a function “eat”. This means that your application has to remember TWO functions with each three lines of code that are actually just the same.
In the second snip, duck and canary do NOT have a “eat” function of theirselves. However they do have access to the prototype eat function. Because of this, they have can also use this function but it is only defined once in the system and just three lines of code for the application.
Now in our example it concerns two instances (duck and canary) and one simple function so it does not really matter. If there were millions of instances with multiple complex functions, we would be talking millions of lines of excessive code for your application to process.