From here: <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures>

> 
> Performance considerations
> 
> 
> 

```
function MyObject(name, message) {
  this.name = name.toString();
  this.message = message.toString();
}
MyObject.prototype = {
  getName: function() {
    return this.name;
  },
  getMessage: function() {
    return this.message;
  }
};

```

> 
> However, redefining the prototype is not recommended. The following example instead appends to the existing prototype:
> 
> 
> 

```
function MyObject(name, message) {
  this.name = name.toString();
  this.message = message.toString();
}
MyObject.prototype.getName = function() {
  return this.name;
};
MyObject.prototype.getMessage = function() {
  return this.message;
};

```

Above quotes and codes are from the given link.  

I want to understand how does the first code suggest that we are redefining the prototype and how does the second code suggest that we are appending the prototype?

What represents redefining and what represents appending in the above pieces of code?