Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking for a commonly used name for the process of developing a child object from a parent object, either through clone-and-modify techniques or through the prototypal inheritance mechanisms available in a language like JavaScript.

In JavaScript: The Good Parts, Douglas Crockford uses the method name beget for this procedure. That seems a bit too graphic for my tastes, and I've not seen it used elsewhere. ECMAScript 5 and some frameworks just use the method name create.

E.G. Take care when ——— prototype X not to override this attribute.

My ideas are evolving, which feels sort of pretentious, and adapting, which just seems vague. Deriving might work, but might also be confusing since it is commonly used when discussing classical inheritance.

The term extending might be applicable, but seems to imply that the original object is being modified, which is not the case here.

Underscore.js seems to make this available via e.g. _(o).chain().clone().extend(o2).

Is there a succinct and widely used term for this procedure?

share|improve this question

closed as primarily opinion-based by gnat, MichaelT, Ampt, GlenH7, Kilian Foth Sep 15 at 10:05

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers 3

I quite like the word "augmenting".

It has the bonus of a nice cyborg allusion.....

share|improve this answer

I think this would be called Evolutionary Prototyping.


share|improve this answer
Hmmrmm.. I think you've got the wrong meaning for "prototyping". I'm talking about using objects as prototypes for other objects, within the context of a single body of code or iteration of that body of code. See en.wikipedia.org/wiki/Prototype-based_programming –  intuited Mar 31 '11 at 2:46

A more thorough answer via opera mini was discarded. I may expand this later, but for a creational process that is related to evolution you might consider synthesize or synthesis.

share|improve this answer
I would expect synthesis to describe the process of combining multiple prototypes into a single descendant, like what you get with classical multiple inheritance or by using mixins. –  intuited Mar 31 '11 at 2:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.