Functional Object Pattern
As you can see, the CPP is 9 more lines of code (space and comments were removed from both files for comparison), the parent object is broken into two pieces — the constructor function and the prototype object — and any creation of a new object from the constructor requires the new keyword (which to me seems dangerous). There is also some code redundancy when extending the parent object.
To me, the FOP looks better, cleaner, is self-contained and doesn't require the new keyword. Unless I'm missing something here, FOP is just better. What do you think?