Σε αυτό το σεμινάριο, θα μάθετε για τη JavaScript αυτή τη λέξη-κλειδί με τη βοήθεια παραδειγμάτων.
Στο JavaScript, η this
λέξη-κλειδί αναφέρεται στο αντικείμενο στο οποίο καλείται.
1. αυτό το Inside Global Scope
Όταν this
χρησιμοποιείται μόνο του, this
αναφέρεται στο καθολικό αντικείμενο ( window
αντικείμενο στα προγράμματα περιήγησης). Για παράδειγμα,
let a = this; console.log(a); // Window () this.name = 'Sarah'; console.log(window.name); // Sarah
Εδώ, this.name
είναι το ίδιο με window.name
.
2. Αυτή η εσωτερική λειτουργία
Όταν this
χρησιμοποιείται σε μια συνάρτηση, this
αναφέρεται στο καθολικό αντικείμενο ( window
αντικείμενο σε προγράμματα περιήγησης). Για παράδειγμα,
function greet() ( // this inside function // this refers to the global object console.log(this); ) greet(); // Window ()
3. Αυτή η λειτουργία εσωτερικού κατασκευαστή
Στο JavaScript, οι λειτουργίες του κατασκευαστή χρησιμοποιούνται για τη δημιουργία αντικειμένων. Όταν μια συνάρτηση χρησιμοποιείται ως συνάρτηση κατασκευαστή, this
αναφέρεται στο αντικείμενο μέσα στο οποίο χρησιμοποιείται. Για παράδειγμα,
function Person() ( this.name = 'Jack'; console.log(this); ) let person1 = new Person(); console.log(person1.name);
Παραγωγή
Πρόσωπο (όνομα: "Jack") Jack
Εδώ, this
αναφέρεται στο αντικείμενο person1. Γι 'αυτό, person1.name
μας δίνει ο Τζακ.
Σημείωση : Όταν this
χρησιμοποιείται με κλάσεις ES6, αναφέρεται στο αντικείμενο μέσα στο οποίο χρησιμοποιείται (παρόμοιο με τις λειτουργίες του κατασκευαστή).
4. Αυτή η μέθοδος εσωτερικού αντικειμένου
Όταν this
χρησιμοποιείται μέσα στη μέθοδο ενός αντικειμένου, this
αναφέρεται στο αντικείμενο στο οποίο βρίσκεται. Για παράδειγμα,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.name); ) ) person.greet();
Παραγωγή
(όνομα: "Jack", ηλικία: 25, χαιρετίστε: ƒ) Jack
Στο παραπάνω παράδειγμα, this
αναφέρεται στο person
αντικείμενο.
5. Αυτή η εσωτερική λειτουργία
Όταν έχετε πρόσβαση this
σε μια εσωτερική λειτουργία (μέσα σε μια μέθοδο), this
αναφέρεται στο καθολικό αντικείμενο. Για παράδειγμα,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); // (name: "Jack", age… ) console.log(this.age); // 25 // inner function function innerFunc() ( // this refers to the global object console.log(this); // Window (… ) console.log(this.age); // undefined ) innerFunc(); ) ) person.greet();
Παραγωγή
(όνομα: "Jack", ηλικία: 25, χαιρετισμός: ƒ) 25 Παράθυρο (…) απροσδιόριστο
Εδώ, το this
εσωτερικό innerFunc()
αναφέρεται στο καθολικό αντικείμενο επειδή innerFunc()
βρίσκεται μέσα σε μια μέθοδο.
Ωστόσο, το this.age
εξωτερικό innerFunc()
αναφέρεται στο person
αντικείμενο.
6. Αυτή η λειτουργία εσωτερικού βέλους
Μέσα στη λειτουργία βέλους, this
αναφέρεται στο γονικό πεδίο. Για παράδειγμα,
const greet = () => ( console.log(this); ) greet(); // Window (… )
Οι λειτουργίες βέλους δεν έχουν τις δικές τους this
. Όταν χρησιμοποιείτε this
μέσα σε μια λειτουργία βέλους, this
αναφέρεται στο αντικείμενο του γονικού πεδίου. Για παράδειγμα,
const greet = ( name: 'Jack', // method sayHi () ( let hi = () => console.log(this.name); hi(); ) ) greet.sayHi(); // Jack
Εδώ, this.name
μέσα στη hi()
συνάρτηση αναφέρεται στο greet
αντικείμενο.
Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία βέλους για να επιλύσετε το ζήτημα της ύπαρξης undefined
όταν χρησιμοποιείτε μια συνάρτηση μέσα σε μια μέθοδο (όπως φαίνεται στο παράδειγμα 5) Για παράδειγμα,
const person = ( name : 'Jack', age: 25, // this inside method // this refers to the object itself greet() ( console.log(this); console.log(this.age); // inner function let innerFunc = () => ( // this refers to the global object console.log(this); console.log(this.age); ) innerFunc(); ) ) person.greet();
Παραγωγή
(όνομα: "Jack", ηλικία: 25, χαιρετισμός: ƒ) 25 (όνομα: "Jack", ηλικία: 25, χαιρετισμό: ƒ) 25
Εδώ, innerFunc()
ορίζεται χρησιμοποιώντας τη λειτουργία βέλους. Παίρνει this
από το πεδίο εφαρμογής του γονέα. Ως εκ τούτου, this.age
δίνει 25 .
Όταν χρησιμοποιείται η λειτουργία βέλους this
, αναφέρεται στο εξωτερικό πεδίο.
7. Αυτή η εσωτερική λειτουργία με αυστηρή λειτουργία
Όταν this
χρησιμοποιείται σε μια λειτουργία με αυστηρή λειτουργία, this
είναι undefined
. Για παράδειγμα,
'use strict'; this.name = 'Jack'; function greet() ( // this refers to undefined console.log(this); ) greet(); // undefined
Σημείωση : Όταν χρησιμοποιείτε this
μέσα σε μια λειτουργία με αυστηρή λειτουργία, μπορείτε να χρησιμοποιήσετε την κλήση συνάρτησης JavaScript ().
Για παράδειγμα,
'use strict'; this.name = 'Jack'; function greet() ( console.log(this.name); ) greet.call(this); // Jack
Όταν περνάτε this
με τη call()
συνάρτηση, greet()
αντιμετωπίζεται ως η μέθοδος του this
αντικειμένου (καθολικό αντικείμενο σε αυτήν την περίπτωση).