cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah objek ditakrifkan tanpa menggunakan var dalam fungsi js objek tempatan?

Objek yang tidak ditakrifkan menggunakan var dalam fungsi haruslah objek global
Pada halaman P71 Buku Merah Kecil, apabila dikatakan bahawa obj ditulis semula secara dalaman dalam fungsi, rujukan objek ini menjadi objek tempatan tak faham~~

typechotypecho2765 hari yang lalu954

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-06-14 10:55:31

    Saya mengeluarkan buku merah kecil saya secara khas Bahagian ini bercakap tentang menghantar parameter mengikut nilai, kemudian objek dihantar mengikut nilai, dan apa yang diluluskan ialah penunjuk ke lokasi objek. Jadi, pada langkah pertama, mudah difahami jika terdapat atribut 'nama' bagi 'chen'.
    Oleh kerana obj ialah parameter fungsi, maksud sebenar adalah dalam fungsi Apabila var了一个obj,后期,函数执行完,就会被销毁。可能你看了后面的执行环境和作用域好理解一点。然后,obj = new Object() , nilai obj bukan penunjuk objek orang asal.
    Sudah tentu, jika anda menggantikan baris kedua kod dengan 'obj1', anda akan mendapat kesan daripada pengisytiharan global yang anda nyatakan. (Jawab soalan dengan sangat serius)

    balas
    0
  • 欧阳克

    欧阳克2017-06-14 10:55:31

    Apa yang anda tulis dalam fungsi yang anda takrifkan seperti ini hanyalah parameter formal, bukan parameter sebenar, apatah lagi parameter global dan setempat. . . . . . . . . . . . . .

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-14 10:55:31

    obj ialah parameter

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-14 10:55:31

    Setelah membaca jawapan rujukan yang diberikan oleh netizen, saya berfikir sejenak, dan secara kasarnya saya tidak tahu sama ada ia betul atau tidak, tetapi saya rasa saya agak rapat!
    Parameter semua fungsi dalam ECMAScript dihantar mengikut nilai
    Jadi apabila objek orang dihantar ke setName() sebagai parameter sebenar, penunjuk objek orang disalin ke setName()
    Anggap bahawa penunjuk asal kepada orang itu objek adalah nombor satu , penunjuk selepas menyalin adalah nombor dua
    Dua penunjuk ini menunjuk kepada objek orang pada masa yang sama
    Jadi apabila obj.name="chen" dilaksanakan dalam fungsi, atribut nama akan ditambahkan pada objek orang mengikut penunjuk nombor dua
    Tetapi apabila melaksanakan When obj=new Object();, penunjuk kedua akan menunjuk ke objek baharu dan bukannya objek orang asal
    Jadi apabila obj.name="long"; atribut nama objek orang tidak akan ditukar
    console .log(person.name); akan mengembalikan "chen"
    dan obj ialah parameter formal, bukan parameter sebenar dimusnahkan selepas fungsi itu dilaksanakan, iaitu, tiada lagi penunjuk nombor dua. Tiada penunjuk kepada atribut nama "panjang".

    balas
    0
  • Batalbalas