JavaScript ನಲ್ಲಿ Object Constructors
ನೀವು ಒಂದೇ ರೀತಿಯ ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು (objects) ರಚಿಸಬೇಕಾಗಬಹುದು. ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಲು JavaScript ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ನೀಡುತ್ತದೆ.
Constructor Functions
ಕನ್ಸ್ಟ್ರಕ್ಟರ್ (constructor) ಎಂಬುದು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲು ಬಳಸುವ ಒಂದು ಫಂಕ್ಷನ್ ಆಗಿದೆ. ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸಲು ಈ ನಿಯಮಗಳನ್ನು ಬಳಸಿ:
- ಫಂಕ್ಷನ್ ಹೆಸರಿನ ಮೊದಲ ಅಕ್ಷರವನ್ನು ಕ್ಯಾಪಿಟಲ್ (Capital) ಅಕ್ಷರದಲ್ಲಿ ಬರೆಯಿರಿ. ಇದು ಅದನ್ನು ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಎಂದು ಗುರುತಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
newಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಿ. ನೀವು ಇದನ್ನು ಮರೆತರೆ, ಫಂಕ್ಷನ್ ಸಾಮಾನ್ಯ ಫಂಕ್ಷನ್ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸಲು ವಿಫಲವಾಗುತ್ತದೆ.
Default Values
ನಿಮ್ಮ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ನಲ್ಲಿ ನೀವು ಡಿಫಾಲ್ಟ್ (default) ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿಸಬಹುದು. ಇದರಿಂದ ನೀವು ಕೆಲವು ವಿವರಗಳನ್ನು ಬಿಟ್ಟರೂ ಸಹ ನಿಮ್ಮ ಆಬ್ಜೆಕ್ಟ್ಗಳು ಸರಿಯಾಗಿರುತ್ತವೆ.
Example:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
ನೀವು new Person() ಎಂದು ಕರೆದರೆ, ಹೆಸರು "Unknown" ಮತ್ತು ವಯಸ್ಸು 0 ಆಗುತ್ತದೆ.
Object.create()
ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಆಬ್ಜೆಕ್ಟ್ ಆಧಾರದ ಮೇಲೆ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸಲು ನೀವು Object.create() ಅನ್ನು ಬಳಸಬಹುದು. ಇದು prototype-ಆಧಾರಿತ ಇನ್ಹೆರಿಟೆನ್ಸ್ (inheritance) ಅನ್ನು ಬಳಸುತ್ತದೆ. ಡೇಟಾವನ್ನು ಕಾಪಿ ಮಾಡುವ ಬದಲು, ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಮೂಲ ಪ್ರೊಟೊಟೈಪ್ಗೆ (prototype) ಲಿಂಕ್ ಆಗಿರುತ್ತದೆ.
Memory Optimization
ಮೆಥಡ್ಗಳನ್ನು (methods) ಕನ್ಸ್ಟ್ರಕ್ಟರ್ನ ಒಳಗೇ ಇರಿಸಬೇಡಿ. ನೀವು ಹಾಗೆ ಮಾಡಿದರೆ, ಪ್ರತಿಯೊಂದು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ಗೂ ಆ ಮೆಥಡ್ನ ಸ್ವಂತ ಪ್ರತಿ (copy) ಸಿಗುತ್ತದೆ. ಇದು ಮೆಮೊರಿಯನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತದೆ.
ಬದಲಾಗಿ, ಮೆಥಡ್ಗಳನ್ನು ಪ್ರೊಟೊಟೈಪ್ಗೆ ಸೇರಿಸಿ. ಈ ಮೂಲಕ, ಎಲ್ಲಾ ಆಬ್ಜೆಕ್ಟ್ಗಳು ಒಂದೇ ಮೆಥಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ.
Example:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
ಕ್ಲಾಸ್ಗಳು (Classes) ಒಂದು ಕ್ಲಾಸ್ ಮತ್ತೊಂದರಿಂದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪಡೆಯಲು (inherit) ಅನುಮತಿಸುತ್ತವೆ. ಪೇರೆಂಟ್ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಅನ್ನು ಕರೆಯಲು ಚೈಲ್ಡ್ ಕ್ಲಾಸ್ನಲ್ಲಿ super() ಕೀವರ್ಡ್ ಬಳಸಿ. ಇದು ಚೈಲ್ಡ್ ಕ್ಲಾಸ್ ಪೇರೆಂಟ್ನ ಪ್ರಾಪರ್ಟೀಸ್ಗಳನ್ನು (properties) ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಕನ್ಸ್ಟ್ರಕ್ಟರ್ಗಳನ್ನು ಬಳಸುವುದರಿಂದ ಆಗುವ ಪ್ರಯೋಜನಗಳು:
- ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೋಡ್ (Reusable code): ಒಂದೇ ಮಾದರಿಯೊಂದಿಗೆ ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ರಚಿಸಬಹುದು.
- ಸ್ವಚ್ಛವಾದ ಲಾಜಿಕ್ (Clean logic): ಆಬ್ಜೆಕ್ಟ್ ಸೆಟಪ್ ಅನ್ನು ಒಂದೇ ಕಡೆ ಇರಿಸಬಹುದು.
- ಸುಲಭವಾದ ಇನಿಶಿಯಲೈಸೇಶನ್ (Easy initialization): ರಚನೆಯ ಸಮಯದಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.
- ಇನ್ಹೆರಿಟೆನ್ಸ್ (Inheritance): ಸರಳ ಆಬ್ಜೆಕ್ಟ್ಗಳಿಂದ ಸಂಕೀರ್ಣ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.
Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp
Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96