Warum bei Prototype-Inheritance die Konstruktor-Funktion von Parentclass zu Childclass wechseln???
bearbeitet von
moin,
> Aber warum kannst Du den Konstruktor nicht aufrufen? Das geht auch, wenn das Funktionsobjekt in einer Variablen steckt.
Sry, erläutere mir genauer: wo ist die Konstruktor Funktion die den `ctor`-Parameter befüllt? Meinst du das in einer Funktion???
```js
// Konstruktor
const Foo = function() {};
Foo.prototype.bar = '<default>';
```
```js
// Erzeuger mit Übergabewerten
const ctor = ( ctor, params ) => {
let instanz = Object.create(ctor.prototype);
params.forEach( param => instanz[ param.name ] = param.value );
return instanz;
};
```
```js
// Aufruf des Erzeugers
const f = ctor( Foo, [
{ name: 'bar', value: 'Hello World' }
] );
// Test
f.bar; // 'Hello World'
```
Hab's gerade in FF getestet und es geht.
Welche BuiltIn Kostruktor Funktion, die nicht selbst geschrieben istohgne `new` operator, kann man verwendet um einen Instanz mit übergabewerten zu erzeugen?
Ich weis, dass nur sequenziell sowas geht...
```js
const Foo = function() {};
Foo.prototype.bar = '<default>';
Foo.prototype.baz = '<default>';
let f = Object.create(Foo.prototype);
f.bar = 'Hello World';
// 'Hello World'
f.baz;
// '<default>'
```
Was nicht geht is sowas...
```js
const f = Object.crerate( Foo.prototype. { bar: 'Hello World' } );
```
…`bar` soll doch bitte n objekt sein und keine String-Property.
Mir ist bekannt das in _JS_ der `new` Operator ungern gesehen wird, da es ja nicht _OO_ sondern _OB_ ist.
Frist der `new`-Operator mehr performance, wenn man ihn nicht den verwendet statt dessen den `Object.create()`-Funktion und dann mit dem erzeugten Objekt protoypen setzt, genau wie bei der Objekt-Instanziierung???
lgmb
--
Sprachstörung
Warum bei Prototype-Inheritance die Konstruktor-Funktion von Parentclass zu Childclass wechseln???
bearbeitet von
moin,
> Aber warum kannst Du den Konstruktor nicht aufrufen? Das geht auch, wenn das Funktionsobjekt in einer Variablen steckt.
Sry, erläutere mir genauer: wo ist die Konstruktor Funktion die den `ctor`-Parameter befüllt? Meinst du das in einer Funktion???
```js
// Konstruktor
const Foo = function() {};
Foo.prototype.bar = '<default>';
```
```js
// Erzeuger mit Übergabewerten
const ctor = ( ctor, params ) => {
let instanz = Object.create(ctor.prototype);
params.forEach( param => instanz[ param.name ] = param.value );
return instanz;
};
```
```js
// Aufruf des Erzeugers
const f = ctor( Foo, [
{ name: 'bar', value: 'Hello World' }
] );
// Test
f.bar; // 'Hello World'
```
Hab's gerade in FF getestet und es geht.
Welche BuiltIn Kostruktor Funktion, die nicht selbst geschrieben istohgne `new` operator, kann man verwendet um einen Instanz mit übergabewerten zu erzeugen?
Ich weis, dass nur sequenziell sowas geht...
```js
const Foo = function() {};
Foo.prototype.bar = '<default>';
Foo.prototype.baz = '<default>';
let f = Object.create(Foo.prototype);
f.bar = 'Hello World';
// 'Hello World'
f.baz;
// '<default>'
```
Was nicht geht is sowas...
```js
const f = Object.crerate( Foo.prototype. { bar: 'Hello World' }
```
…`bar` soll doch bitte n objekt sein und keine String-Property.
Mir ist bekannt das in _JS_ der `new` Operator ungern gesehen wird, da es ja nicht _OO_ sondern _OB_ ist.
Frist der `new`-Operator mehr performance, wenn man ihn nicht den verwendet statt dessen den `Object.create()`-Funktion und dann mit dem erzeugten Objekt protoypen setzt, genau wie bei der Objekt-Instanziierung???
lgmb
--
Sprachstörung