MB: Function Borrowing mit Konstruktor-Funktion?

Beitrag lesen

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