Λειτουργία κατασκευαστή JavaScript (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε για τη λειτουργία κατασκευαστή JavaScript με τη βοήθεια παραδειγμάτων.

Στο JavaScript, μια συνάρτηση κατασκευαστή χρησιμοποιείται για τη δημιουργία αντικειμένων. Για παράδειγμα,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person = new Person();

Στο παραπάνω παράδειγμα, function Person()είναι μια συνάρτηση κατασκευαστή αντικειμένων.

Για να δημιουργήσουμε ένα αντικείμενο από μια συνάρτηση κατασκευαστή, χρησιμοποιούμε τη newλέξη-κλειδί.

Σημείωση : Θεωρείται καλή πρακτική η χρήση κεφαλαίων στο πρώτο γράμμα της συνάρτησης κατασκευαστή.

Δημιουργία πολλαπλών αντικειμένων με συνάρτηση κατασκευαστή

Στο JavaScript, μπορείτε να δημιουργήσετε πολλά αντικείμενα από μια συνάρτηση κατασκευαστή. Για παράδειγμα,

 // constructor function function Person () ( this.name = 'John', this.age = 23, this.greet = function () ( console.log('hello'); ) ) // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John

Στο παραπάνω πρόγραμμα, δύο αντικείμενα δημιουργούνται χρησιμοποιώντας την ίδια συνάρτηση κατασκευαστή.

JavaScript αυτή η λέξη-κλειδί

Στο JavaScript, όταν η thisλέξη-κλειδί χρησιμοποιείται σε μια συνάρτηση κατασκευαστή, thisαναφέρεται στο αντικείμενο κατά τη δημιουργία του αντικειμένου. Για παράδειγμα,

 // constructor function function Person () ( this.name = 'John', ) // create object const person1 = new Person(); // access properties console.log(person1.name); // John

Ως εκ τούτου, όταν ένα αντικείμενο έχει πρόσβαση στις ιδιότητες, μπορεί να έχει άμεση πρόσβαση στην ιδιότητα ως person1.name.

Παράμετροι λειτουργίας κατασκευαστή JavaScript

Μπορείτε επίσης να δημιουργήσετε μια συνάρτηση κατασκευαστή με παραμέτρους. Για παράδειγμα,

 // constructor function function Person (person_name, person_age, person_gender) ( // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () ( return ('Hi' + ' ' + this.name); ) ) // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 

Στο παραπάνω παράδειγμα, έχουμε περάσει ορίσματα στη συνάρτηση του κατασκευαστή κατά τη δημιουργία του αντικειμένου.

 const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'male');

Αυτό επιτρέπει σε κάθε αντικείμενο να έχει διαφορετικές ιδιότητες. Όπως φαίνεται παραπάνω,

console.log(person1.name); δίνει στον Τζον

console.log(person2.name); δίνει στον Σαμ

Δημιουργία αντικειμένων: Λειτουργία κατασκευαστή έναντι αντικειμένου κυριολεκτικά

  • Το Object Literal χρησιμοποιείται γενικά για τη δημιουργία ενός αντικειμένου. Η συνάρτηση του κατασκευαστή είναι χρήσιμη αν θέλετε να δημιουργήσετε πολλά αντικείμενα. Για παράδειγμα,
 // using object literal let person = ( name: 'Sam' )
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person();
  • Κάθε αντικείμενο που δημιουργείται από τη συνάρτηση του κατασκευαστή είναι μοναδικό. Μπορείτε να έχετε τις ίδιες ιδιότητες με τη συνάρτηση του κατασκευαστή ή να προσθέσετε μια νέα ιδιότητα σε ένα συγκεκριμένο αντικείμενο. Για παράδειγμα,
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

Τώρα αυτή η ageιδιότητα είναι μοναδική σε person1αντικείμενο και δεν είναι διαθέσιμη για person2αντιρρήσεις.

Ωστόσο, εάν ένα αντικείμενο δημιουργείται με ένα αντικείμενο κυριολεκτικά, και εάν μια μεταβλητή ορίζεται με αυτήν την τιμή αντικειμένου, τυχόν αλλαγές στη μεταβλητή τιμή θα αλλάξουν το αρχικό αντικείμενο. Για παράδειγμα,

 // using object lateral let person = ( name: 'Sam' ) console.log(person.name); // Sam let student = person; // changes the property of an object student.name = 'John'; // changes the origins object property console.log(person.name); // John

Όταν ένα αντικείμενο δημιουργείται με ένα αντικείμενο κυριολεκτικά, οποιαδήποτε μεταβλητή αντικειμένου που προέρχεται από αυτό το αντικείμενο θα ενεργήσει ως κλώνος του αρχικού αντικειμένου. Ως εκ τούτου, οποιαδήποτε αλλαγή που κάνετε σε ένα αντικείμενο θα αντικατοπτρίζεται επίσης στο άλλο αντικείμενο.

Προσθήκη ιδιοτήτων και μεθόδων σε ένα αντικείμενο

Μπορείτε να προσθέσετε ιδιότητες ή μεθόδους σε ένα αντικείμενο όπως αυτό:

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding property to person1 object person1.gender = 'male'; // adding method to person1 object person1.greet = function () ( console.log('hello'); ) person1.greet(); // hello // Error code // person2 doesn't have greet() method person2.greet();

Παραγωγή

 γεια Uncaught TypeError: Το person2.greet δεν είναι συνάρτηση

Στο παραπάνω παράδειγμα, μια νέα ιδιότητα genderκαι μια νέα μέθοδος greet()προστίθενται στο person1αντικείμενο.

Ωστόσο, αυτή η νέα ιδιότητα και μέθοδος προστίθεται μόνο στο person1. Δεν έχετε πρόσβαση genderή greet()από person2. Ως εκ τούτου, το πρόγραμμα δίνει σφάλμα όταν προσπαθούμε να αποκτήσουμε πρόσβασηperson2.greet();

Πρωτότυπο αντικειμένου JavaScript

Μπορείτε επίσης να προσθέσετε ιδιότητες και μεθόδους σε μια συνάρτηση κατασκευαστή χρησιμοποιώντας ένα πρωτότυπο . Για παράδειγμα,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding new property to constructor function Person.prototype.gender = 'Male'; console.log(person1.gender); // Male console.log(person2.gender); // Male

Για να μάθετε περισσότερα σχετικά με τα πρωτότυπα, επισκεφθείτε το Πρωτότυπο JavaScript.

Ενσωματωμένοι κατασκευαστές JavaScript

Το JavaScript έχει επίσης ενσωματωμένους κατασκευαστές. Κάποιοι από αυτούς είναι:

 let a = new Object(); // A new Object object let b = new String(); // A new String object let c = new Number(); // A new Number object let d = new Boolean(); // A new Boolean object

Στο JavaScript, οι συμβολοσειρές μπορούν να δημιουργηθούν ως αντικείμενα με:

 const name = new String ('John'); console.log(name); // "John"

Στο JavaScript, οι αριθμοί μπορούν να δημιουργηθούν ως αντικείμενα με:

 const number = new Number (57); console.log(number); // 57

Στο JavaScript, τα booleans μπορούν να δημιουργηθούν ως αντικείμενα από:

 const count = new Boolean(true); console.log(count); // true

Σημείωση : Συνιστάται η χρήση πρωτόγονων τύπων δεδομένων και η δημιουργία τους με κανονικό τρόπο, όπως const name = 'John';, const number = 57;καιconst count = true;

Δεν πρέπει να δηλώνετε συμβολοσειρές, αριθμούς και δυαδικές τιμές ως αντικείμενα επειδή επιβραδύνουν το πρόγραμμα.

Σημείωση : Στο JavaScript, η λέξη-κλειδί classεισήχθη στο ES6 (ES2015) που μας επιτρέπει επίσης να δημιουργήσουμε αντικείμενα. Τα μαθήματα είναι παρόμοια με τις λειτουργίες του κατασκευαστή στο JavaScript. Για να μάθετε περισσότερα, επισκεφθείτε τα μαθήματα JavaScript.

ενδιαφέροντα άρθρα...