Using Object.create in Factory now

This commit is contained in:
Jeena Paradies 2012-07-20 11:06:32 +02:00
parent b02f169fc9
commit c7898319c3

View file

@ -1,22 +1,27 @@
define(['Server/NotificationCenter'], function(NotificationCenter) {
function Factory() {
this.notificationCenter = new NotificationCenter();
this.notificationCenter = new NotificationCenter();
}
Factory.prototype.new = function () {
if (arguments.length < 1)
throw 'Too fiew arguments';
if (typeof arguments[0] != 'function')
throw arguments[0] + ' is not a function';
var type = arguments[0];
var object = new (type.bind.apply(type,arguments))();
object.notificationCenter = this.notificationCenter;
object.factory = this;
return object;
Factory.prototype.new = function (constructor /*, arg1, arg2, ... */) {
if (arguments.length < 1)
throw 'Too fiew arguments';
if (typeof arguments[0] != 'function')
throw arguments[0] + ' is not a function';
var instance = Object.create(constructor.prototype, {
notificationCenter: {
value: this.notificationCenter
},
factory: {
value: this
}
});
constructor.apply(instance, Array.prototype.slice.call(arguments, 1));
return instance;
}
return Factory;