Ich bin eine neue Klasse basierend auf der Base
Klasse mit externen Methoden aus dem ext
Obj.Erstellen Sie eine neue Instanz von Bind generiert obj
function Base(info) {
var self = this;
self.name = info.name;
self.createNewInstance = function (data) {
//I would like to identify the parent constructor
// in this case, the obj containing `filter` and `find` methods
// and use that to generate a new instance
return new self.constructor(data);
};
return self;
}
var ext = {
filter: function() {/*...*/},
find: function() {/*...*/}
},
FinalClass = Base.bind(ext),
instance1 = FinalClass({name: 'John'}),
instance2 = instance1.createNewInstance({name: 'Mark'});
console.log(instance1);
//--> {name: 'John', filter: [Function], find: [Function], createNewInstance: [Function]}
console.log(instance2);
//--> {name: 'Mark'}
Aber wie Sie sehen können, ich möchte neue Instanz erstellen aus dem Inneren der FinalClass
Klasse, die die binded Methoden zu verwenden, werden in der Lage und nicht nur die Base
Klasse diejenigen. So instance2
würde auch filter
, find
und createNewInstance
Methoden haben.
würde ich verschiedene Arten von Klassen verwenden, die die gleiche Base
Klasse erben, so dass nur die Methode bind codieren in gäbe es keine Angst, ich bin arbeiten :(
dies möglich ist, zu erreichen?
Vielen Dank im Voraus
wow danke viel ZER0 das war genau das, was ich gesucht habe, vielen Dank für diese großartige Antwort – zanona