Could all of this not have been done by letting you specify parameters on `SaveButton`, such as the text to display? For example, if you put the original button in a maker function:

```javascript
function makeSaveButton(messageStrings) {
    var SaveButton = {
        ...,
        message: messageStrings
    };
    return SaveButton;
}

var SaveButton = makeSaveButton({SAVE: 'Save', SAVING: 'Saving', ...});
var DeleteButton = makeSaveButton({SAVE: 'Delete', SAVING: 'Deleting', ...});
```
etc.