Here is the difference in the two approaches:
When you redefine the prototype, you are removing any properties that DID exist on the item and you are giving it a whole new set. Kind of a slash-and-burn approach.
On the other hand, when you add a new property, as shown in the second example, you are leaving anything that exists in place and simply adding that one property.
Extending, rather than overwriting, an object tends to be a bit more flexible and easier to debug, but it really comes down to a matter of style.
If you are are starting with a freshly constructed object, both approaches do exactly the same thing.
If you are starting with an existing object, the second form is the only one that makes sense.