Rumah hujung hadapan web tutorial js js中this的指向问题探讨

js中this的指向问题探讨

Mar 16, 2018 pm 05:09 PM
javascript this Bincangkan

本文主要和大家分享js中this的指向问题探讨,this关键字代表当前正在执行的方法的对象,如果没有当前方法,则是指全局变量。就是说this代表调用该方法的对象的引用。

一、全局作用域或者普通函数中this指向全局对象window。

//直接打印
    console.log(this) //window
//function声明函数
    function bar () {conso
le.log(this)}bar() //window
//function声明函数赋给变量
    var bar = function () {console.log(this)}bar() //window
//自执行函数
    (function () {console.log(this)})(); //window
Salin selepas log masuk

二、方法调用中谁调用this指向谁

//对象方法调用
    var person = {run: function () {console.log(this)}}person.run()// person
//事件绑定
    var btn = document.querySelector("button")btn.onclick = function () {console.log(this) // btn}
//事件监听
    var btn = document.querySelector("button")btn.addEventListener('click', function () {console.log(this) //btn})
//jquery的ajax
    $.ajax({ self: this,    type:"get",    url: url,    async:true,    success: function (res) {console.log(this)
 // this指向传入$.ajxa()中的对象
    console.log(self) // window  } }); 
//这里说明以下,将代码简写为$.ajax(obj) ,this指向obj,在obj中this指向window,因为在在success方法中,独享obj调用自己,所以this指向obj
Salin selepas log masuk

三、在构造函数或者构造函数原型对象中this指向构造函数的实例

//不使用new指向window
    windowfunction Person (name) {console.log(this) // window    
    this.name = name;}Person('inwe')
//使用new
    function Person (name) {this.name = name   console.log(this) //people     
    self = this  }  var people = new Person('iwen')  console.log(self === people) //true
//这里new改变了this指向,将this由window指向Person的实例对象people
new改变this指向,将this指向window改为指向person的实例people
Salin selepas log masuk

改变this的指向:

    函数本身就是一个特殊类型,大多数认为是一个变量,this指向谁在函数定义时候确定不了,只有在函数执行时候才可以确定this到底指向谁,实际上this指向的是最终调用他的函数。

相关推荐:

PHP中$this的用法和访问限定符详解

修改JavaScript中的this指向的多种方法

JavaScript中的this规则及this对象用法实例

Atas ialah kandungan terperinci js中this的指向问题探讨. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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)

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Menyelam dalam: Apakah rangka kerja Django? Menyelam dalam: Apakah rangka kerja Django? Jan 19, 2024 am 09:23 AM

Rangka kerja Django ialah rangka kerja Python untuk aplikasi web yang menyediakan cara yang mudah dan berkuasa untuk mencipta aplikasi web. Malah, Django telah menjadi salah satu rangka kerja pembangunan web Python yang paling popular dan telah menjadi pilihan pertama untuk banyak syarikat, termasuk Instagram dan Pinterest. Artikel ini akan menyelidiki apa itu rangka kerja Django, termasuk konsep asas dan komponen penting, serta contoh kod khusus. Konsep asas DjangoDjan

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Dec 17, 2023 pm 10:13 PM

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap Pengenalan: Dengan pembangunan Internet, pengguna mempunyai keperluan yang lebih tinggi dan lebih tinggi untuk enjin carian masa nyata. Apabila mencari dengan enjin carian tradisional, pengguna perlu mengklik butang carian untuk mendapatkan hasil kaedah ini tidak dapat memenuhi keperluan pengguna untuk hasil carian masa nyata. Oleh itu, menggunakan teknologi JavaScript dan WebSocket untuk melaksanakan enjin carian masa nyata telah menjadi topik hangat. Artikel ini akan memperkenalkan secara terperinci penggunaan JavaScript

Bagaimana untuk melaksanakan sistem tandatangan elektronik dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tandatangan elektronik dalam talian menggunakan WebSocket dan JavaScript Dec 18, 2023 pm 03:09 PM

Gambaran keseluruhan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tandatangan elektronik dalam talian: Dengan kemunculan era digital, tandatangan elektronik digunakan secara meluas dalam pelbagai industri untuk menggantikan tandatangan kertas tradisional. Sebagai protokol komunikasi dupleks penuh, WebSocket boleh melakukan penghantaran data dua hala masa nyata dengan pelayan Digabungkan dengan JavaScript, sistem tandatangan elektronik dalam talian boleh dilaksanakan. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk membangunkan dalam talian yang mudah

Menyelam dalam: Ciri benang tunggal dalam bahasa Go Menyelam dalam: Ciri benang tunggal dalam bahasa Go Mar 15, 2024 pm 02:09 PM

Sebagai bahasa pengaturcaraan moden, bahasa Go telah digemari dan digemari oleh semakin ramai pembangun sejak beberapa tahun kebelakangan ini kerana kesederhanaan dan kecekapannya. Salah satu ciri uniknya ialah sifat benang tunggalnya. Dalam bahasa pengaturcaraan berbilang benang tradisional, pembangun biasanya perlu mengurus penyegerakan dan pengecualian bersama antara utas dalam bahasa, dengan coroutine yang unik (Goroutine) dan mekanisme komunikasi (saluran), ia boleh melaksanakan pengaturcaraan serentak. 1. Goroutine dan utas tunggal: Bahasa Go

Menyelam mendalam ke dalam aksara khas biasa dalam Linux Menyelam mendalam ke dalam aksara khas biasa dalam Linux Mar 14, 2024 pm 02:54 PM

Sebagai sistem pengendalian sumber terbuka yang biasa digunakan, sistem pengendalian Linux mempunyai kebolehsesuaian dan fleksibiliti yang kuat. Apabila menggunakan sistem Linux, kita sering menghadapi pemprosesan pelbagai aksara khas. Watak istimewa ini mempunyai makna istimewa dalam baris arahan dan boleh melaksanakan banyak fungsi lanjutan. Artikel ini akan menyelidiki aksara khas biasa dalam Linux dan memperkenalkan penggunaannya secara terperinci dengan contoh kod tertentu. Kad bebas: Kad bebas ialah aksara khas yang digunakan untuk memadankan nama fail biasa termasuk *,?, [], dsb. Berikut adalah beberapa

Bagaimana untuk melaksanakan sistem pengundian dalam talian masa nyata menggunakan JavaScript dan WebSocket Bagaimana untuk melaksanakan sistem pengundian dalam talian masa nyata menggunakan JavaScript dan WebSocket Dec 18, 2023 pm 04:27 PM

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pengundian dalam talian masa nyata Pengenalan: Dengan perkembangan pesat Internet, sistem pengundian dalam talian masa nyata telah menjadi satu bentuk yang sangat biasa dalam pelbagai aktiviti dan pilihan raya. Menggunakan teknologi JavaScript dan WebSocket untuk melaksanakan sistem pengundian dalam talian masa nyata mempunyai kelebihan fleksibiliti dan kemudahan penggunaan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pengundian dalam talian masa nyata yang mudah dan menyediakan kod yang sepadan

See all articles