यह बहुत सरल और सीधे आगे है। कोड को देखो। जावास्क्रिप्ट एक्सटेंशन के पीछे मूल अवधारणा को समझने की कोशिश करें।
पहले हमें जावास्क्रिप्ट फ़ंक्शन का विस्तार करने दें।
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
}
आप निम्न तरीके से बाल फ़ंक्शन बनाकर इस फ़ंक्शन का विस्तार कर सकते हैं
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
}
अब आप निम्न प्रकार से बाल फ़ंक्शन का उपयोग कर सकते हैं,
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
हम इस तरह से जावास्क्रिप्ट क्लासेस को बढ़ाकर जावास्क्रिप्ट फंक्शन भी बना सकते हैं।
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
}
}
आइए हम इस तरह से चाइल्ड फंक्शन के साथ इस वर्ग का विस्तार करें,
function Child(props) {
let parent = new BaseClass(props)
const getMessage = () => `Message is ${parent.getProps()}`;
return { ...parent, getMessage} // I have used spread operator.
}
फिर से आप इसी तरह के परिणाम प्राप्त करने के लिए बाल फ़ंक्शन का उपयोग कर सकते हैं,
let childObject = Child("Secret Message")
console.log(childObject.getMessage()) // logs "Message is Secret Message"
console.log(childObject.getProps()) // logs "Secret Message"
जावास्क्रिप्ट बहुत आसान भाषा है। हम लगभग कुछ भी कर सकते हैं। हैप्पी जावास्क्रिप्ट ... आशा है कि मैं आपको अपने मामले में उपयोग करने के लिए एक विचार देने में सक्षम था।