I&#x27;m not sure it makes sense to rank these two in terms of popularity as they&#x27;re generally used for very different things.<p>Delegation is heavily used in combination with constructors (both ES6 classes and traditional) and factories. Extension is typically used to apply default values, merge data objects or update multiple properties at once.<p>The use of extension in a way that could reasonably be called a &quot;form of inheritance&quot; is mostly limited to mixins, which I would say aren&#x27;t more popular than using prototypes (at least not obviously so).