Το ECMAScript 2015, γνωστό και ως ES6, εισήγαγε τις τάξεις JavaScript.
Οι τάξεις JavaScript είναι πρότυπα για αντικείμενα JavaScript.
Χρησιμοποιήστε τη λέξη-κλειδί κλάση για να δημιουργήσετε μια τάξη.
Να προσθέτετε πάντα μια μέθοδο με το όνομα constructor():
class ClassName {
constructor() { ... }
}class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}Το παραπάνω παράδειγμα δημιουργεί μια κλάση με το όνομα "Car".
Η κλάση έχει δύο αρχικές ιδιότητες: "όνομα" και "έτος".
Μια κλάση JavaScript δεν είναι αντικείμενο.
Είναι ένα πρότυπο για αντικείμενα JavaScript.
Όταν έχετε μια κλάση, μπορείτε να χρησιμοποιήσετε την κλάση για να δημιουργήσετε αντικείμενα:
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Classes</h1>
<p>Creating two car objects from a car class:</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
document.getElementById("demo").innerHTML =
myCar1.name + " " + myCar2.name;
</script>
</body>
</html>
Το παραπάνω παράδειγμα χρησιμοποιεί την Κλάση αυτοκινήτου για να δημιουργήσει δύο Αντικείμενα αυτοκινήτου.
Η μέθοδος κατασκευής καλείται αυτόματα όταν δημιουργείται ένα νέο αντικείμενο.
Η μέθοδος του κατασκευαστή είναι μια ειδική μέθοδος:
Πρέπει να έχει το ακριβές όνομα "κατασκευαστής"
Εκτελείται αυτόματα όταν δημιουργείται ένα νέο αντικείμενο
Χρησιμοποιείται για την προετοιμασία των ιδιοτήτων αντικειμένων
Εάν δεν ορίσετε μια μέθοδο κατασκευής, JavaScript θα προσθέσει μια κενή μέθοδο κατασκευής.
Οι μέθοδοι κλάσεων δημιουργούνται με την ίδια σύνταξη με τις μεθόδους αντικειμένων.
Χρησιμοποιήστε τη λέξη-κλειδί κλάση για να δημιουργήσετε μια τάξη.
Να προσθέτετε πάντα μια μέθοδο κατασκευαστή().
Στη συνέχεια, προσθέστε οποιονδήποτε αριθμό μεθόδων.
class ClassName {
constructor() { ... }
method_1() { ... }
method_2() { ... }
method_3() { ... }
}Δημιουργήστε μια μέθοδο Class με το όνομα "age", που επιστρέφει την ηλικία του αυτοκινήτου:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Methods</h1>
<p>How to define and use a Class method.</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
</script>
</body>
</html>
Μπορείτε να στείλετε παραμέτρους στις μεθόδους κλάσης:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new
Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is
" + myCar.age(year) + " years old."; Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Method</h1>
<p>Pass a parameter into the "age()" method.</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";
</script>
</body>
</html>
Ο παρακάτω πίνακας ορίζει την πρώτη έκδοση του προγράμματος περιήγησης με πλήρη υποστήριξη για Μαθήματα σε JavaScript:
| Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
| Mar, 2016 | Jul, 2015 | Mar, 2016 | Oct, 2015 | Mar, 2016 |
"use strict"
Η σύνταξη στις κλάσεις πρέπει να γράφεται σε "αυστηρή λειτουργία".
Θα πάρετε ένα σφάλμα εάν δεν ακολουθήσετε τους κανόνες "αυστηρής λειτουργίας".
Στην "αυστηρή λειτουργία" θα λάβετε ένα σφάλμα εάν χρησιμοποιήσετε μια μεταβλητή χωρίς δηλώνοντας το:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // This will not work
const date = new Date(); // This will work
return date.getFullYear() - this.year;
}
}Δοκιμάστε το μόνοι σας →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Classes uses "strict mode"</h1>
<p>In a JavaScript Class you cannot use variable without declaring it.</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // This will not work
const date = new Date(); // This will work
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
</script>
</body>
</html>
Μάθετε περισσότερα για την "αυστηρή λειτουργία" στο: JS Strict Mode.