Je sais que vous pouvez définir le prototype d'un nouvel objet avec cette fonction (read mozzilla docu) mais il ne crée également des propriétés propres si elle est utilisée dans un littéral d'objet comme celui-cine Object.create crée également des propriétés propres
return Object.create(this);
Je sais aussi cette méthode à partir d'un Klass Wich littéral que les copies des méthodes d'instance
var subclass = function() { };
subclass.prototype = parent.prototype;
klass.prototype = new subclass;
surtout, je suis intéressé par la méthode object.create
EDIT
var Klass = {
init: function(){},
prototype: {
init: function(){}
},
create: function(){
var object = Object.create(this);
console.log('object with class create');
console.log(object);
console.log("object's parent is this");
console.log(this);
object.parent = this;
object.init.apply(object, arguments);
console.log('returned object from create');
console.log(object);
return object;
},
inst: function(){
var instance = Object.create(this.prototype);
console.log('de instance na object create');
console.log(instance);
instance.parent = this;
instance.init.apply(instance, arguments);
console.log('arguments in inst');
console.log(arguments);
return instance;
},
proxy: function(func){
var thisObject = this;
return(function(){
return func.apply(thisObject, arguments);
});
},
include: function(obj){
var included = obj.included || obj.setup;
for(var i in obj)
this.fn[i] = obj[i];
if (included) included(this);
},
extend: function(obj){
var extended = obj.extended || obj.setup;
for(var i in obj)
this[i] = obj[i];
if (extended) extended(this);
}
};
Klass.fn = Klass.prototype;
Klass.fn.proxy = Klass.proxy;
merci, Richard
"* copie les méthodes d'instance *" - quoi? – Bergi
Donc 'create' est censé créer une sous-classe, et' inst' est supposé créer des instances de cette classe? Pourquoi les classes ont-elles besoin d'une méthode 'init'? Quelle est votre question, que voulez-vous accomplir? – Bergi