𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಫಂಕ್ಷನ್ (Constructor function) ಎಂಬುದು ಆಬ್ಜೆಕ್ಟ್ಗಳಿಗಾಗಿ ಒಂದು ನೀಲನಕ್ಷೆ (blueprint) ಇದ್ದಂತೆ. ಒಂದೇ ರೀತಿಯ ರಚನೆಯನ್ನು ಹೊಂದಿರುವ ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಿ.
ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:
ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆಯಲು ನೀವು new ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸುತ್ತೀರಿ. ಈ ಪ್ರಕ್ರಿಯೆಯು ನಾಲ್ಕು ಕೆಲಸಗಳನ್ನು ಮಾಡುತ್ತದೆ:
- ಇದು ಒಂದು ಖಾಲಿ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
- ಇದು this ಅನ್ನು ಆ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ಗೆ ಸೂಚಿಸುವಂತೆ ಮಾಡುತ್ತದೆ.
- ಇದು ಫಂಕ್ಷನ್ ಒಳಗಿರುವ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
- ಇದು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಿಟರ್ನ್ ಮಾಡುತ್ತದೆ.
ಉದಾಹರಣೆ ಕೋಡ್:
function Employee(name, salary) { this.name = name; this.salary = salary; }
const emp1 = new Employee("Saravanan", 50000);
ಅನುಸರಿಸಬೇಕಾದ ನಿಯಮಗಳು:
- ಫಂಕ್ಷನ್ ಹೆಸರುಗಳನ್ನು ಕ್ಯಾಪಿಟಲ್ ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭಿಸಿ.
- ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ಗೆ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ನಿಯೋಜಿಸಲು this ಬಳಸಿ.
this ನ ಪಾತ್ರ:
ಕನ್ಸ್ಟ್ರಕ್ಟರ್ನ ಒಳಗಡೆ, this ಎಂಬುದು ನೀವು ರಚಿಸುತ್ತಿರುವ ನಿರ್ದಿಷ್ಟ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, this.name = name ಎಂಬುದು ಪ್ಯಾರಾಮೀಟರ್ ಮೌಲ್ಯವನ್ನು ಆಬ್ಜೆಕ್ಟ್ ಪ್ರಾಪರ್ಟಿಗೆ ನಿಯೋಜಿಸುತ್ತದೆ.
ಮೆಥಡ್ಗಳನ್ನು ಸೇರಿಸುವುದು:
ಪ್ರತಿಯೊಂದು ಆಬ್ಜೆಕ್ಟ್ ಕೂಡ ಬಳಸಲು ಅನುಕೂಲವಾಗುವಂತೆ ನೀವು ಕನ್ಸ್ಟ್ರಕ್ಟರ್ನ ಒಳಗಡೆ ಫಂಕ್ಷನ್ಗಳನ್ನು ಸೇರಿಸಬಹುದು.
function Employee(name, salary) { this.name = name; this.salary = salary; this.displayInfo = function() { console.log(this.name + " earns " + this.salary); }; }
ಮೆಮೊರಿ ದಕ್ಷತೆ:
ನೀವು ನೇರವಾಗಿ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ಗೆ ಮೆಥಡ್ಗಳನ್ನು ಸೇರಿಸಿದರೆ, ಪ್ರತಿಯೊಂದು ಆಬ್ಜೆಕ್ಟ್ಗೂ ತನ್ನದೇ ಆದ ಪ್ರತ್ಯೇಕ ಕಾಪಿ ಸಿಗುತ್ತದೆ. ಇದು ಹೆಚ್ಚು ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ.
ಬದಲಾಗಿ, prototype ಬಳಸಿ. prototype ಗೆ ಮೆಥಡ್ ಅನ್ನು ಸೇರಿಸುವುದರಿಂದ ಎಲ್ಲಾ ಆಬ್ಜೆಕ್ಟ್ಗಳ ನಡುವೆ ಒಂದೇ ಒಂದು ಕಾಪಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು.
Employee.prototype.greet = function() { console.log("Hello " + this.name); };
ಸಾರಾಂಶ:
- ಒಂದೇ ಒಂದು ಆಬ್ಜೆಕ್ಟ್ಗಾಗಿ object literals ಬಳಸಿ.
- ಒಂದೇ ರೀತಿಯ ರಚನೆಯನ್ನು ಹೊಂದಿರುವ ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್ಗಳಿಗಾಗಿ constructor functions ಬಳಸಿ.
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Post link: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k