Κλειδί this του JavaScript

Παράδειγμα

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"

Δοκιμάστε το προσωπικά