Нужно ваше мнение про шаблон объектов
/** * * OBJECT PATTERN * */ var Modul = Modul || {}; Modul.BasicClass = function (_arg) { this._key = _arg; }; Modul.BasicClass.prototype = { Create: function (_name) { var _key = this._key; this.ChildClass = function () { this.superclass.call(this, _key); this._val = _name; }; this.ChildClass.prototype = new Modul.BasicClass(); this.ChildClass.prototype.superclass = Modul.BasicClass; this.ChildClass.prototype.constructor = this.ChildClass; delete this.ChildClass.prototype.Create; return new this.ChildClass(); } //Test method , returnArg: function () { return this._key + ': ' + this._val; } //Other inheritable method , Method1: function () {} , Method2: function () {} , Method3: function () {} , toString: function () {} , valueOf: function () {} }; var baseUserClass = new Modul.BasicClass('Name'), subUserClsas1 = baseUserClass.Create('Boodoolai'), subUserClsas2 = baseUserClass.Create('Kolobok'); /** * TEST PATTERN * * @return true * @return true */ console.log(subUserClsas1 instanceof Modul.BasicClass); console.log(subUserClsas2 instanceof Modul.BasicClass); /** * @return Name: Boodoolai * @return Name: Kolobok */ console.log(subUserClsas1.returnArg()); console.log(subUserClsas2.returnArg()); Этот патерн мало чем отличает от других, просто есть сомнения, что в назначении наследуемости есть, что то лишнее. А именно, не хотелось бы терять память на имеющейся цикличности. Сразу замечу, что под имеющуюся задачу, клонирование объектов с прототипами (наподобие .extend) - не вариант. |
Часовой пояс GMT +3, время: 06:52. |