Rumah  >  Soal Jawab  >  teks badan

javascript - Soalan tentang konteks, iaitu, apa yang ditunjukkan?

Pergi terus ke kod:

var test = {
  outer: function () {
    // 此时this指向test对象
    console.log(this);
    
    function inner() {
      // 此时this指向window
      console.log(this);
    }
    inner();
  }
}

Apakah sebab mengapa titik kod di atas ini berbeza?

Saya faham sangat sekarang, tolong beri saya jawapan!

某草草某草草2662 hari yang lalu864

membalas semua(5)saya akan balas

  • 大家讲道理

    大家讲道理2017-07-05 10:58:18

    Membuang fungsi peminjaman dan pembina, hanya tinggal dua jenis, satu fungsi biasa dan satu lagi kaedah objek.

    Kaedah objek menghala ke objek, fungsi biasa menghala ke global

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:58:18

    Siapa yang memanggil fungsi ini, maka thistunjuk kepada siapa.

    Penunjukan

    this的指向只和你如何调用这个函数有关,比如你说第一个this指向test,这可不一定,有的是办法把这个this的指向改掉。只有当你运行test.outer()的时候,第一个this才会指向test hanya berkaitan dengan cara anda memanggil fungsi ini Sebagai contoh, jika anda mengatakan bahawa

    pertama menunjuk kepada ujian, ini tidak semestinya benar 🎜. Hanya apabila anda menjalankan test.outer() 🎜 yang pertama akan menunjuk ke test. 🎜

    balas
    0
  • PHP中文网

    PHP中文网2017-07-05 10:58:18

    /a/11...

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:58:18

    Ini ialah masalah penutupan apabila objek diberikan atribut melalui literal objek, termasuk kaedah fungsi, kaedah fungsi ini mempunyai output konsol, dan kemudian fungsi diisytiharkan dalam fungsi ini, masalah penutupan terbentuk dalam keadaan biasa , ini menunjuk ke tetingkap Dalam keadaan istimewa, anda boleh menukar nilai ini. Anda boleh membaca artikel yang saya tulis tentang penutupan paket Anda akan mendapat cerapan tentang kesulitan telefon bimbit

    balas
    0
  • 巴扎黑

    巴扎黑2017-07-05 10:58:18

    Malah, adalah salah untuk menjawab tanpa nama! Fungsi yang ditakrifkan di dalam fungsi dalam objek tidak boleh mendapatkan pembolehubah persekitaran peringkat atas secara langsung, apatah lagi di dalam ini Anda mesti menentukan pembolehubah untuknya, seperti var that=this, anda boleh mendapatkan bahagian atas-. tingkatkan objek ini;
    var test = {

        outer: function () {
            // 此时this指向test对象
            var that=this
            console.log(this);
    
            function inner() {
                // 此时this指向window
                console.log(that);
            }
            inner();
        }
    }

    balas
    0
  • Batalbalas