Κλειδί this του JavaScript
- Προηγούμενη σελίδα JS σφιχτό μοτίβο
- Επόμενη σελίδα JS δείκτες συνάρτησης
Παράδειγμα
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
Τι είναι το this;
JavaScript this
Το κλειδί αναφέρεται στο αντικείμενο που ανήκει.
Είναι διαφορετικό, ανάλογα με τη θέση της χρήσης:
- Στη μεθόδο,
this
Είναι το αντικείμενο κυριούχος. - Στην ανεξάρτητη χρήση,
this
Είναι το καθολικό αντικείμενο. - Στη συνάρτηση,
this
Είναι το καθολικό αντικείμενο. - Στη συνάρτηση, σε σφιχτή μορφή,
this
Είναι μη καθορισμένο. - Στο συμβάν,
this
Είναι το στοιχείο που λαμβάνει το συμβάν.
όπως call()
και apply()
Η μέθοδος μπορεί να χρησιμοποιήσει το this σε οποιοδήποτε αντικείμενο.
Το this στη μεθόδο
Στην μεθόδο του αντικειμένου,this
Είναι ο "κυριούχος" αυτής της μεθόδου.
Στο παράδειγμα στην κορυφή αυτής της σελίδας:this
Είναι το αντικείμενο person.
Το αντικείμενο person είναι ο κυριούχος της συνάρτησης fullName.
fullName : function() { return this.firstName + " " + this.lastName; }
μόνο το this
Στη χρήση μόνο, ο κυριούχος είναι το καθολικό αντικείμενο, άρα this
Είναι το καθολικό αντικείμενο.
Στο παράθυρο του προγράμματος περιήγησης, το καθολικό αντικείμενο είναι [αντικείμενο Window]
:
Παράδειγμα
var x = this;
Στη σφιχτή μορφή, αν χρησιμοποιείται μόνο, this
Είναι το καθολικό αντικείμενο [αντικείμενο Window]
:
Παράδειγμα
"use strict"; var x = this;
Το this στη συνάρτηση (προεπιλεγμένο)
Η προεπιλεγμένη σύνδεση του κυριούχου στη συνάρτηση της JavaScript this
.
Άρα, στη συνάρτηση,this
Είναι το καθολικό αντικείμενο [αντικείμενο Window]
.
Παράδειγμα
function myFunction() { return this; }
Το this στη συνάρτηση (σφιχτή μορφή)
Η σφιχτή μορφή της JavaScript δεν επιτρέπει την προεπιλεγμένη σύνδεση.
Άρα, όταν χρησιμοποιείται στη συνάρτηση, σε严格模式,this
Είναι μη καθορισμένο (undefined
})
Παράδειγμα
"use strict"; function myFunction() { return this; }
Το this στο πρόγραμμα επεξεργασίας συμβάντων
Σε ένα πρόγραμμα επεξεργασίας συμβάντων HTML,this
Είναι το στοιχείο HTML που λαμβάνει το συμβάν:
Παράδειγμα
<button onclick="this.style.display='none'"> Κάντε κλικ για να διαγράψω! </button>
συνάρτηση αντικειμένων
Σε αυτό το παράδειγμα:this
Είναι το αντικείμενο person (το αντικείμενο person είναι ο "κυριούχος" της συνάρτησης):
Παράδειγμα
var person = { firstName : "Bill", lastName : "Gates", id : 678, myFunction : function() { return this; } };
Παράδειγμα
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
Με άλλα λόγιαthis.firstName σημαίνει thisτου αντικειμένου firstName ιδιότητες.
Εξωτερική συνάρτηση binding
call()
και apply()
Μέθοδοι είναι προκαθορισμένες μεθόδους JavaScript.
Και τα δύο μπορούν να χρησιμοποιηθούν για να καλέσουν μεθόδους αντικειμένων με άλλο αντικείμενο ως παράμετρο.
Μπορείτε να διαβάσετε περισσότερα στο κείμενο του tutorial. call()
και apply()
πληροφορίες.
Στο παρακάτω παράδειγμα, όταν χρησιμοποιείται ο person2 ως παράμετρος για την κλήση του person1.fullName,this
θα αναφέρεται στον person2, ακόμα και αν είναι μέθοδος του person1:
Παράδειγμα
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName:"Bill", lastName: "Gates", } person1.fullName.call(person2); // θα επιστρέψει "Bill Gates"
- Προηγούμενη σελίδα JS σφιχτό μοτίβο
- Επόμενη σελίδα JS δείκτες συνάρτησης