UNPKG

lettuce

Version:

Lettuce JS, Mini Mobile Framework for Romantic with DSL.

61 lines (45 loc) 1.57 kB
/** * Lettuce Class 0.0.1 * JavaScript Class built-in inheritance system *(c) 2015, Fengda Huang - http://www.phodal.com * * Copyright (c) 2011, 2012 Jeanine Adkisson. * MIT Licensed. * Inspired by https://github.com/munro/self, https://github.com/jneen/pjs */ Lettuce.prototype.Class = (function (prototype, ownProperty) { var lettuceClass = function Klass(_superclass, definition) { function Class() { var self = this instanceof Class ? this : new Basic(); self.init.apply(self, arguments); return self; } function Basic() { } Class.Basic = Basic; var _super = Basic[prototype] = _superclass[prototype]; var proto = Basic[prototype] = Class[prototype] = new Basic(); proto.constructor = Class; Class.extend = function (def) { return new Klass(Class, def); }; var open = (Class.open = function (def) { if (typeof def === 'function') { def = def.call(Class, proto, _super, Class, _superclass); } if (typeof def === 'object') { for (var key in def) { if (ownProperty.call(def, key)) { proto[key] = def[key]; } } } if (!('init' in proto)) { proto.init = _superclass; } return Class; }); return (open)(definition); }; return lettuceClass; })('prototype', ({}).hasOwnProperty);