Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * A JavaScript code pattern for deferred/just-in-time subclass prototype initialization.
- * Author: Brian Katzung
- * See: https://www.kappacs.com/javascript-just-in-time-subclass-prototype-initialization/
- */
- function Class () {
- var c = Class;
- return c.$c.call(this, arguments[0] !== c && arguments);
- }
- Class.$c = function (args) { // JIT 1x class init helper
- // var c = Class, p = c.prototype; // "Base" classes (Object subclasses)
- var s = SuperClass, c = Class, p = c.prototype = new s(s); // Subclasses
- p.constructor = c; // Subclasses
- c.$c = function (args) { return this.$i(args); }; // Post-init helper
- p.$i = c.$i = function (args) { // Instance init helper
- s.$i.call(this, args); // Subclasses
- if (!args) return this; // Skip init on false
- // Add this.properties here
- return this;
- };
- // Add p.methods here
- // return this.$i(args); // Base classes (original prototype)
- return new c(c).$i(args); // Subclasses (altered prototype)
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement