国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Bagaimana this berfungsi dalam fungsi biasa panggilan
Kaedah Objek Dalam this
Fungsi anak panah dan this
Menukar this dengan mengikat, memanggil, dan memohon
Rumah hujung hadapan web tutorial js Bagaimana kata kunci ini berfungsi dalam javascript

Bagaimana kata kunci ini berfungsi dalam javascript

Jul 13, 2025 am 02:02 AM
kata kunci ini

Dalam JavaScript, tingkah laku ini bergantung kepada bagaimana fungsi dipanggil. ① Dalam panggilan fungsi biasa, ini menunjukkan objek global (tetingkap dalam penyemak imbas dan global dalam node.js), tetapi tidak ditentukan dalam mod yang ketat; ② Dalam kaedah objek, ini menunjukkan objek yang memanggil kaedah, tetapi jika kaedah itu dipanggil secara berasingan, ini mungkin kehilangan konteks; ③ Fungsi anak panah tidak mempunyai sendiri, yang diwarisi dari skop luar dan sesuai untuk mengekalkan konsistensi ini; ④ Gunakan .bind (), .call (), dan. Apply () untuk mengikat nilai ini secara eksplisit, yang digunakan untuk membuat fungsi mengikat, panggil dengan segera dan lulus parameter, hubungi segera dan lulus parameter dalam array. Kunci untuk memahami ini adalah bagaimana fungsi dipanggil dan bukannya bagaimana ia ditakrifkan.

Bagaimana kata kunci ini berfungsi dalam javascript

Apabila anda bekerja dengan JavaScript, kata kunci this boleh menjadi salah satu konsep yang paling rumit untuk membungkus kepala anda. Ia tidak selalu merujuk kepada apa yang anda harapkan, terutamanya jika anda datang dari bahasa pengaturcaraan lain. Pendek kata: this merujuk kepada konteks di mana fungsi dipanggil - bukan di mana ia ditakrifkan.

Bagaimana kata kunci ini berfungsi dalam javascript

Mari kita pecahkan ini ke dalam beberapa situasi yang sama supaya anda dapat memahami dengan lebih baik bagaimana this berlaku.


Bagaimana this berfungsi dalam fungsi biasa panggilan

Dalam panggilan fungsi biasa (bukan di dalam kaedah objek atau kelas), this biasanya menunjuk kepada objek global - yang dalam pelayar adalah window , dan dalam node.js adalah global . Tetapi jika anda menggunakan mod ketat ( "use strict" ), maka this undefined .

Bagaimana kata kunci ini berfungsi dalam javascript

Contohnya:

 fungsi showThis () {
  console.log (ini);
}

showthis (); // dalam penyemak imbas: objek tetingkap (atau tidak ditentukan dalam mod yang ketat)

Oleh itu, jika anda melihat this menunjuk kepada sesuatu yang tidak dijangka seperti objek global, periksa jika fungsi itu dipanggil secara normal tanpa sebarang konteks.

Bagaimana kata kunci ini berfungsi dalam javascript

Beberapa perkara yang perlu diperhatikan:

  • Tingkah laku ini berubah apabila anda berada di dalam fungsi anak panah (kami akan sampai kepada itu).
  • Sekiranya anda mengikat pengendali acara atau panggilan balik, kadang -kadang this kehilangan konteks yang dimaksudkan melainkan dengan jelas terikat.

Kaedah Objek Dalam this

Apabila fungsi adalah sebahagian daripada objek (kaedah), this merujuk kepada objek yang memiliki kaedah. Itu masuk akal kerana anda memanggil fungsi dalam konteks objek itu.

Contoh:

 const user = {
  Nama: "Alice",
  salam () {
    console.log (`Hello, $ {this.name}`);
  }
};

user.greet (); // Hello, Alice

Di sini, this merujuk kepada user kerana kaedah itu digunakan pada objek tersebut. Tetapi berhati -hati untuk gotchas ini:

  • Jika anda mengekstrak kaedah dan memanggilnya secara berasingan, this mungkin menjadi undefined atau menunjuk kepada objek global.

     const sisthi = user.greet;
    kataHi (); // hello, undefined (dalam mod yang ketat)
  • Anda boleh membetulkannya dengan mengikat kaedah dengan jelas dengan .bind(user) atau menggunakan fungsi anak panah di dalam kaedah.


Fungsi anak panah dan this

Fungsi anak panah tidak mempunyai this sendiri. Sebaliknya, mereka mewarisi this dari konteks leksikal di sekelilingnya-pada dasarnya, fungsi tidak terdekat yang tidak ada di sekelilingnya.

Ini sangat berguna ketika menulis panggilan balik di dalam Kaedah:

 const user = {
  Nama: "Bob",
  salam () {
    setTimeout (() => {
      console.log (`Hi, $ {this.name}`);
    }, 1000);
  }
};

user.GreetLater (); // hi, bob

Jika kami telah menggunakan fungsi biasa dan bukannya fungsi anak panah di dalam setTimeout , this akan menunjuk kepada objek global atau undefined , bergantung kepada mod yang ketat.

Jadi ingat:

  • Fungsi anak panah sangat bagus untuk menjaga this konsisten
  • Mereka tidak sesuai sebagai kaedah objek jika anda perlu mengakses objek melalui this

Kadang -kadang anda mahu mengawal apa yang dirujuk this . Untuk itu, JavaScript memberi kita tiga alat: .call() , .apply() , dan .bind() .

  • .call(obj, arg1, arg2...) menjalankan fungsi dengan segera dengan spesifik this
  • .apply(obj, [args]) adalah serupa tetapi mengambil argumen sebagai array
  • .bind(obj) mengembalikan fungsi baru dengan set this secara kekal

Gunakan contoh kes:

 Fungsi Pengenalan (Lang) {
  console.log (`$ {this.name} tahu $ {lang}`);
}

const orang = {name: "John"};

memperkenalkan.call (orang, "JavaScript"); // John tahu javascript
memperkenalkan.apply (orang, ["python"]); // John tahu python

const boundIntro = qenent.bind (orang);
BoundIntro ("Java"); // John tahu java

Kaedah ini sangat membantu apabila meminjam kaedah dari objek lain atau menubuhkan pengendali acara.


Itulah idea umum di sebalik bagaimana this berfungsi dalam JavaScript. Ini semua tentang di mana dan bagaimana fungsi dipanggil - bukan di mana ia ditulis. Terus berlatih dan perhatikan bagaimana perubahan konteks dalam senario yang berbeza. Sebaik sahaja anda terbiasa dengan peraturan, ia menjadi lebih diramalkan.

Pada dasarnya itu sahaja.

Atas ialah kandungan terperinci Bagaimana kata kunci ini berfungsi dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Java vs JavaScript: Membersihkan kekeliruan Java vs JavaScript: Membersihkan kekeliruan Jun 20, 2025 am 12:27 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.

Menguasai Komen JavaScript: Panduan Komprehensif Menguasai Komen JavaScript: Panduan Komprehensif Jun 14, 2025 am 12:11 AM

Commentsarecrucialinjavascriptformaintainingclarityandfosteringcollaboration.1) theyhelpindebugging, onboarding, andunderstandingcodeevolution.2) menggunakan-linecommentsforquickexplanationsandmulti-linecommentsfordetaileddescriptions.3)

Komen JavaScript: Penjelasan ringkas Komen JavaScript: Penjelasan ringkas Jun 19, 2025 am 12:40 AM

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

Bagaimana untuk bekerja dengan tarikh dan masa di JS? Bagaimana untuk bekerja dengan tarikh dan masa di JS? Jul 01, 2025 am 01:27 AM

Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.

JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju Jun 20, 2025 am 12:21 AM

JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection

JavaScript: Meneroka jenis data untuk pengekodan yang cekap JavaScript: Meneroka jenis data untuk pengekodan yang cekap Jun 20, 2025 am 12:46 AM

JavascripthassevenfundamentalDatypes: nombor, rentetan, boolean, undefined, null, objek, andsymbol.1) numberuseadouble-precisionformat, bergunaforwidevaluangesbutbecautiouswithfloating-pointarithmetic.2)

Kenapa anda harus meletakkan tag  di bahagian bawah ? Kenapa anda harus meletakkan tag di bahagian bawah ? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

Apa perbezaan antara Java dan JavaScript? Apa perbezaan antara Java dan JavaScript? Jun 17, 2025 am 09:17 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza. 1.Java adalah bahasa yang ditaip dan disusun secara statik, sesuai untuk aplikasi perusahaan dan sistem besar. 2. JavaScript adalah jenis dinamik dan bahasa yang ditafsirkan, terutamanya digunakan untuk interaksi web dan pembangunan front-end.

See all articles