JavaScript ನಲ್ಲಿ Object Constructors

ನೀವು ಆಗಾಗ್ಗೆ ಒಂದೇ ರೀತಿಯ ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು (objects) ರಚಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. JavaScript ಇದನ್ನು ಮಾಡಲು ನಿಮಗೆ ಹಲವಾರು ಮಾರ್ಗಗಳನ್ನು ನೀಡುತ್ತದೆ.

Constructor Functions

Constructor ಎಂಬುದು ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಸಿದ್ಧಪಡಿಸಲು ಬಳಸುವ ಒಂದು ವಿಶೇಷ ಫಂಕ್ಷನ್ (function). ಇದನ್ನು ಕರೆಯಲು new ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಿ. ಫಂಕ್ಷನ್ ಹೆಸರನ್ನು ಯಾವಾಗಲೂ ಕ್ಯಾಪಿಟಲ್ ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭಿಸಿ. ಇದು ಸಾಮಾನ್ಯ ಫಂಕ್ಷನ್‌ಗಳಿಂದ ಇದನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ನೀವು new ಕೀವರ್ಡ್ ಅನ್ನು ಮರೆತರೆ, ಆ ಫಂಕ್ಷನ್ ಸಾಮಾನ್ಯ ಫಂಕ್ಷನ್‌ನಂತೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸರಿಯಾದ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸಲು ವಿಫಲವಾಗುತ್ತದೆ.

Default Values

ನಿಮ್ಮ ಕನ್ಸ್‌ಟ್ರಕ್ಟರ್‌ನಲ್ಲಿ ನೀವು ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳನ್ನು (default values) ಹೊಂದಿಸಬಹುದು. ಇದರಿಂದ ನೀವು ಯಾವುದಾದರೂ ಆರ್ಗ್ಯುಮೆಂಟ್ (argument) ನೀಡಲು ಮರೆತರೂ ಸಹ, ನಿಮ್ಮ ಆಬ್ಜೆಕ್ಟ್‌ಗಳು ಯಾವಾಗಲೂ ಮಾನ್ಯವಾದ ಡೇಟಾವನ್ನು ಹೊಂದಿರುವುದನ್ನು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

Example:

function Person(name = "Unknown", age = 0) {
    this.name = name;
    this.age = age;
}

Prototypes ಮತ್ತು Memory

ಕನ್ಸ್‌ಟ್ರಕ್ಟರ್‌ಗೆ ನೇರವಾಗಿ ಮೆಥಡ್‌ಗಳನ್ನು (methods) ಸೇರಿಸುವ ಬದಲು ಪ್ರೊಟೊಟೈಪ್‌ಗೆ (prototype) ಸೇರಿಸುವುದು ಹೆಚ್ಚು ಸ್ಮಾರ್ಟ್ ಆಗಿದೆ. ನೀವು ಪ್ರೊಟೊಟೈಪ್ ಬಳಸಿದಾಗ, ಎಲ್ಲಾ ಇನ್‌ಸ್ಟೆನ್ಸ್‌ಗಳು (instances) ಒಂದೇ ಮೆಥಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಇದು ಮೆಮೊರಿಯನ್ನು ಉಳಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಕಂಪ್ಯೂಟರ್ ಪ್ರತಿಯೊಂದು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್‌ಗಾಗಿ ಮೆಥಡ್ ಅನ್ನು ಮತ್ತೆ ಮತ್ತೆ ರಚಿಸುವುದಿಲ್ಲ.

Object.create()

ಈ ಮೆಥಡ್ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಅದರ ಪ್ರೊಟೊಟೈಪ್ ಆಗಿ ಬಳಸಿಕೊಂಡು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಇದು ಕನ್ಸ್‌ಟ್ರಕ್ಟರ್ ಅಗತ್ಯವಿಲ್ಲದೆಯೇ ಇನ್ಹೆರಿಟನ್ಸ್ (inheritance) ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ. ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಮೂಲ ಆಬ್ಜೆಕ್ಟ್‌ನ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು (properties) ಪ್ರವೇಶಿಸಬಹುದು.

Class Inheritance

ಆಧುನಿಕ JavaScript ಇನ್ಹೆರಿಟನ್ಸ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಕ್ಲಾಸ್‌ಗಳನ್ನು (classes) ಬಳಸುತ್ತದೆ. ನೀವು ಪೇರೆಂಟ್ ಕ್ಲಾಸ್ ಅನ್ನು ಎಕ್ಸ್‌ಟೆಂಡ್ (extend) ಮಾಡುವ ಚೈಲ್ಡ್ ಕ್ಲಾಸ್ ಅನ್ನು ರಚಿಸಬಹುದು. ಚೈಲ್ಡ್‌ನಿಂದ ಪೇರೆಂಟ್‌ಗೆ ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸಲು super() ಕೀವರ್ಡ್ ಬಳಸಿ. ಇದು ಚೈಲ್ಡ್ ತನ್ನದೇ ಆದ ವಿಶಿಷ್ಟ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸೇರಿಸಿಕೊಳ್ಳುವಾಗ ಪೇರೆಂಟ್‌ನ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಕನ್ಸ್‌ಟ್ರಕ್ಟರ್‌ಗಳನ್ನು ಏಕೆ ಬಳಸಬೇಕು?

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

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi