Das ist sehr einfach und unkompliziert. Schauen Sie sich den Code an. Versuchen Sie, das Grundkonzept der Javascript-Erweiterung zu verstehen.
Lassen Sie uns zunächst die Javascript-Funktion erweitern.
function Base(props) {
const _props = props
this.getProps = () => _props
// We can make method private by not binding it to this object.
// Hence it is not exposed when we return this.
const privateMethod = () => "do internal stuff"
return this
}
Sie können diese Funktion erweitern, indem Sie die untergeordnete Funktion folgendermaßen erstellen
function Child(props) {
const parent = Base(props)
this.getMessage = () => `Message is ${parent.getProps()}`;
// You can remove the line below to extend as in private inheritance,
// not exposing parent function properties and method.
this.prototype = parent
return this
}
Jetzt können Sie die untergeordnete Funktion wie folgt verwenden:
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
Wir können auch eine Javascript-Funktion erstellen, indem wir Javascript-Klassen wie diese erweitern.
class BaseClass {
constructor(props) {
this.props = props
// You can remove the line below to make getProps method private.
// As it will not be binded to this, but let it be
this.getProps = this.getProps.bind(this)
}
getProps() {
return this.props
}
}
Erweitern wir diese Klasse mit der Child-Funktion wie folgt:
function Child(props) {
let parent = new BaseClass(props)
const getMessage = () => `Message is ${parent.getProps()}`;
return { ...parent, getMessage} // I have used spread operator.
}
Wieder können Sie die untergeordnete Funktion wie folgt verwenden, um ein ähnliches Ergebnis zu erhalten:
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
Javascript ist eine sehr einfache Sprache. Wir können fast alles machen. Happy JavaScripting ... Ich hoffe, ich konnte Ihnen eine Idee geben, die Sie in Ihrem Fall verwenden können.