JavaScript ನಲ್ಲಿ Constructors

ಒಂದೊಂದಾಗಿ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು (objects) ರಚಿಸುವುದು ನಿಧಾನವಾಗುತ್ತದೆ. ಒಂದೇ ರೀತಿಯ ಗುಣಲಕ್ಷಣಗಳನ್ನು (properties) ಹೊಂದಿರುವ ಹತ್ತು ವಿದ್ಯಾರ್ಥಿಗಳ ಅಗತ್ಯವಿದ್ದರೆ, ನೀವು ಪದೇ ಪದೇ ಒಂದೇ ಕೋಡ್ ಅನ್ನು ಬರೆಯುವ ಮೂಲಕ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತೀರಿ.

JavaScript ಇದನ್ನು Constructor Functions ಮೂಲಕ ಪರಿಹರಿಸುತ್ತದೆ.

ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಅನ್ನು ಒಂದು ನೀಲನಕ್ಷೆ (blueprint) ಎಂದು ಭಾವಿಸಿ. ಮನೆಯ ನೀಲನಕ್ಷೆಯು ಮನೆಯಲ್ಲೇ ಆಗಿರುವುದಿಲ್ಲ, ಆದರೆ ನೀವು ಅದನ್ನು ಬಳಸಿಕೊಂಡು ಅನೇಕ ಮನೆಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಒಂದು ವಿಶೇಷ ಫಂಕ್ಷನ್ (special function). ಇದರಲ್ಲಿ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ರಚಿಸಲು ನೀವು new ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸುತ್ತೀರಿ.

ಉದಾಹರಣೆ:

function Student(name, age, city) {
    this.name = name;
    this.age = age;
    this.city = city;
}

const student1 = new Student("John", 21, "Chennai");
const student2 = new Student("David", 22, "Madurai");

ಇದನ್ನು ಏಕೆ ಬಳಸಬೇಕು?

  • ಇದು ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ.
  • ಇದು ಕೋಡ್ ಪುನರಾವರ್ತನೆಯನ್ನು ತಡೆಯುತ್ತದೆ.
  • ಇದು ನಿಮ್ಮ ಡೇಟಾಗೆ ಒಂದು ಪ್ರಮಾಣಿತ ರಚನೆಯನ್ನು (standard structure) ನೀಡುತ್ತದೆ.

this ನ ಪಾತ್ರ:

ಕನ್ಸ್ಟ್ರಕ್ಟರ್‌ನ ಒಳಗಡೆ, this ಎಂಬ ಪದವು ನೀವು ರಚಿಸುತ್ತಿರುವ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್‌ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಒಬ್ಬ ಶಿಕ್ಷಕರು "ನನ್ನ ತರಗತಿ" (my classroom) ಎಂದು ಹೇಳಿದರೆ, "ನನ್ನ" ಎಂಬ ಪದವು ಆ ನಿರ್ದಿಷ್ಟ ಶಿಕ್ಷಕರಿಗೆ ಸಂಬಂಧಿಸುತ್ತದೆ. ಕೋಡ್‌ನಲ್ಲಿ, this.name ಎಂಬುದು ನೀವು ಈಗಷ್ಟೇ ರಚಿಸಿದ ನಿರ್ದಿಷ್ಟ ಆಬ್ಜೆಕ್ಟ್‌ನ ಹೆಸರನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ನೀವು new ಬಳಸಿದಾಗ ಏನಾಗುತ್ತದೆ?

ನೀವು const emp = new Employee("John", 50000) ಎಂದು ರನ್ ಮಾಡಿದಾಗ, ಈ ನಾಲ್ಕು ಹಂತಗಳು ನಡೆಯುತ್ತವೆ:

  1. JavaScript ಒಂದು ಖಾಲಿ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
  2. this ಕೀವರ್ಡ್ ಆ ಹೊಸ ಆಬ್ಜೆಕ್ಟ್‌ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ.
  3. ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಗುಣಲಕ್ಷಣಗಳನ್ನು (properties) ಸೇರಿಸಲಾಗುತ್ತದೆ.
  4. ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ನಿಮಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ.

ಕ್ರಿಯೆಗಳನ್ನು (Actions) ಸೇರಿಸುವುದು:

ಆಬ್ಜೆಕ್ಟ್‌ಗಳು ಕೇವಲ ಡೇಟಾವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವುದಷ್ಟೇ ಅಲ್ಲದೆ, ಕ್ರಿಯೆಗಳನ್ನು ಕೂಡ ಮಾಡಬಲ್ಲವು. ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನಲ್ಲಿ, ಈ ಕ್ರಿಯೆಗಳನ್ನು ಮೆಥಡ್ಸ್ (methods) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

ಉದಾಹರಣೆ:

function Laptop(brand, ram) {
    this.brand = brand;
    this.ram = ram;
    this.showDetails = function() {
        console.log(this.brand, this.ram);
    };
}

ಈಗ Laptop ಆಬ್ಜೆಕ್ಟ್ ಡೇಟಾ ಮತ್ತು ಆ ಡೇಟಾವನ್ನು ತೋರಿಸಲು ಒಂದು ಫಂಕ್ಷನ್ ಅನ್ನು ಹೊಂದಿದೆ.

ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು (Best Practices):

  • ಕನ್ಸ್ಟ್ರಕ್ಟರ್‌ನ ಮೊದಲ ಅಕ್ಷರವನ್ನು ಯಾವಾಗಲೂ ಕ್ಯಾಪಿಟಲ್ (Capital) ಅಕ್ಷರದಲ್ಲಿ ಇರಿಸಿ. student ಬದಲಿಗೆ Student ಬಳಸಿ. ಇದು ಇತರ ಡೆವಲಪರ್‌ಗಳಿಗೆ new ಕೀವರ್ಡ್ ಬಳಸಲು ಸೂಚಿಸುತ್ತದೆ.
  • ಯಾವಾಗಲೂ new ಕೀವರ್ಡ್ ಬಳಸಿ. ನೀವು ಅದನ್ನು ಮರೆತರೆ, ಫಂಕ್ಷನ್ ಸಾಮಾನ್ಯ ಫಂಕ್ಷನ್‌ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ಕೆಲಸ ಮಾಡದಂತೆ ಮಾಡುತ್ತದೆ.

ಹೋಲಿಕೆ:

Object Literals:

  • ಒಂದೇ ಒಂದು ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಉತ್ತಮವಾಗಿದೆ.
  • ಸರಳ ಮತ್ತು ವೇಗವಾಗಿದೆ.
  • ನೀಲನಕ್ಷೆ (blueprint) ಇಲ್ಲ.

Constructor Functions:

  • ಅನೇಕ ಆಬ್ಜೆಕ್ಟ್‌ಗಳಿಗೆ ಉತ್ತಮವಾಗಿದೆ.
  • ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಮತ್ತು ವ್ಯವಸ್ಥಿತವಾಗಿದೆ.
  • ನೀಲನಕ್ಷೆಯ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ.

Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor Full post: https://dev.to/annapoo/constructor-in-javascript-4nbm