The way to Lengthen Prototypes with JavaScript


One of many ideological sticking factors of the primary JavaScript framework was was extending prototypes vs. wrapping features. Frameworks like MooTools and Prototype prolonged prototypes whereas jQuery and different smaller frameworks didn’t. Every had their advantages, however in the end all these years later I nonetheless imagine that the power to increase native prototypes is an enormous function of JavaScript. Let’s take a look at how simple it’s to empower each occasion of a primitive by extending prototypes!

Each JavaScript native, like Quantity, String, Array, Object, and so forth. has a prototype. Each technique on a prototype is inherited by each occasion of that object. For instance, we are able to present each `Array occasion with a distinctive technique by extending its prototype:

Array.prototype.distinctive = perform() {
  return [ Set(this)];

['1', '1', '2'].distinctive(); // ['1', '2']
new Array('1', '1', '2').distinctive(); // ['1', '2']

Be aware that if you may also guarantee chaining functionality by returning this:

['1', '1', '2'].distinctive().reverse(); // ['2', '1']

The most important criticism of extending prototypes has at all times been identify collision the place the eventual specification implementation is totally different than the framework implementation. Whereas I perceive that argument, you possibly can fight it with prefixing perform names. Including tremendous powers to a local prototype so that each occasion has it’s so helpful that I might by no means inform somebody to not prolong a prototype. #MooToolsFTW.


Leave a Reply

Your email address will not be published. Required fields are marked *