JavaScript memiliki kata kunci dengan. Tujuan asli dari pernyataan dengan adalah untuk menyediakan metode sketsa namespace untuk akses objek langkah demi langkah. Artinya, di area kode yang ditentukan, objek dipanggil langsung melalui nama simpul.
Fungsi dari pernyataan dengan untuk sementara mengubah rantai lingkup dan mengurangi input berulang.
Struktur sintaksinya adalah:
dengan (objek) {// pernyataan}Mari berikan contoh praktis:
dengan (document.forms []) {name.value = "Lee King"; address.value = "peking"; zipcode.value = ""; }Metode penulisan tradisional yang sesuai adalah:
Document.Forms []. Name.Value = "Lee King"; document.forms []. address.value = "peking"; document.forms []. zipcode.value = "";
Anda dapat melihat keringkasan dan kejelasan dari pernyataan dengan, tetapi sulit untuk menemukan kesempurnaan sejati di dunia kode.
Penerjemah JS perlu memeriksa apakah variabel dalam blok dengan objek yang terkandung dalam blok dengan, yang akan sangat mengurangi kecepatan eksekusi dengan pernyataan dengan dan menyulitkan pernyataan JS untuk dioptimalkan. Untuk memperhitungkan kecepatan dan volume kode, kami dapat menemukan solusi yang relatif kompromi:
var form = document.forms []; Form.Name.Value = "Lee King"; form.address.Value = "peking"; form.zipcode.value = "";
Oleh karena itu, dalam pengembangan kode yang efisien di masa depan, kita harus menghindari penggunaan dengan pernyataan sebanyak mungkin.
Setelah pengujian:
var a = 123; var b = {a: 321}; dengan (b) {console.log (a); // 321} var a = 123; var b = {}; Hapus properti A di B dengan (b) {console.log (a); // 123} dari rantai lingkup untuk menganalisisnyaDalam JavaScript, fungsi adalah objek, dan pada kenyataannya, semua yang ada di JavaScript adalah objek. Ada properti internal di dalam fungsi yang hanya dapat diakses oleh mesin JavaScript, yaitu [[Lingkup]]. Properti ini berisi kumpulan objek dalam ruang lingkup saat fungsi dibuat. Koleksi ini disebut rantai lingkup.
Misalnya, kode berikut:
fungsi add (num1, num2) {var sum = num1 + num2; jumlah pengembalian; }Ketika suatu fungsi dibuat, objek global akan diisi dalam rantai ruang lingkupnya, yang berisi semua variabel global, seperti yang ditunjukkan pada gambar di bawah ini:
Ketika fungsi dijalankan, objek aktif dibuat, yang berisi semua variabel lokal, parameter bernama, dan fungsi ini. Objek kemudian didorong ke ujung depan rantai lingkup. Ketika fungsi dieksekusi, objek juga dihancurkan.
Dapat dilihat bahwa variabel global akan didorong ke ujung rantai lingkup oleh objek aktif, itulah sebabnya kecepatan akses variabel global lambat!
dengan
Secara umum, rantai ruang lingkup hanya akan terpengaruh oleh dengan dan menangkap pernyataan. Saat menggunakan dengan, fungsi akan membuat objek aktif baru dan mendorongnya ke ujung depan, yang merupakan objek dengan. Ini berarti bahwa semua variabel lokal berada dalam objek rantai lingkup kedua, itulah sebabnya Anda harus menghindari penggunaannya.
Di atas adalah pemahaman dengan pernyataan dengan JavaScript yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda ingin mengetahui informasi lebih lanjut, harap perhatikan situs web Wulin.com!