moin,
ich möchte zu meinem Verständnis Function Borrowing auf Prototype-Inheritance wie folgt anwenden (ich habe den Code gekürzt damit mein Verständnis-Problem besser verdeutlicht wird)
// Parent Class
function AbstractUser() {
// Code
}
// Child Class
function User( user ) {
AbstractUser.call( this );
this.personals = {
first: user.first,
first: user.last
}
}
// Function Borrower
function Borrower(){}
// Lend Function
Borrower.prototype.getFormalName = function() {
return `${this.personals.last}, ${this.personals.first}`
}
let mm = new User( { first: 'Max', last: 'Mustermann' } );
let b = new Borrower();
// Function Borrowing
b.getFormalName.apply( mm ); // "Mustermann, Max"
mm.getFormalName(); // TypeError: mm.getFormalName is not a function
eigentlich sollte die Funktion getFormalName
von Borrower
welches mit b
erzeugt wurde, diese Funktion über die BuiltIn-Funktion apply
mit dem Argument mm
bereit stellen.
- Was lief schief bei mir im Code?
- Klappt Function-Borrowing nur mit Object Literals? Denn da funktioniert es!
- Müssen zum Funktionsborgen beide Objekte in der Struktur exakt gleich sein mit ausnahme der Funktion die geborgt wird?
Edit Rolf B: Hinweis von MB bezüglich DummyUser = Borrower eingepflegt
lgmb
--
Sprachstörung
Sprachstörung