Ringkasan beberapa konsep yang mudah dikelirukan dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 16:04:18
asal
1246 orang telah melayarinya

1.

var name = "The Window";
var object = {
name : "My Object",
getName: function(){
return this.name;
}
};
Salin selepas log masuk

Kaedah getName() di sini hanya mengembalikan nilai this.name. Berikut ialah beberapa cara untuk memanggil object.getName()
kaedah dan keputusan masing-masing.
object.getName(); //"Objek Saya"
(object.getName)(); //"Objek Saya"
(object.getName = object.getName)(); //"Tetingkap", dalam mod tidak ketat

Dalam kes ketiga (object.getName=object.getName);

2.

function outputNumbers(count){
for (var i=0; i < count; i++){
//alert(i);
}
var i; //重新声明变量
alert(i); //计数
}

outputNumbers(5); 

Salin selepas log masuk
JavaScript tidak pernah memberitahu anda jika anda mengisytiharkan pembolehubah yang sama beberapa kali; dalam kes itu, ia hanya mengabaikan pengisytiharan berikutnya

Lihat (bagaimanapun, ia melakukan inisialisasi pembolehubah dalam pengisytiharan berikutnya). Fungsi tanpa nama boleh digunakan untuk meniru skop peringkat blok dan mengelakkan masalah ini.

3.

function(){
//这里是块级作用域
}(); //出错!
Salin selepas log masuk
Kod ini akan menyebabkan ralat sintaks kerana JavaScript menganggap kata kunci fungsi sebagai permulaan pengisytiharan fungsi dan fungsi

Pengisytiharan nombor tidak boleh diikuti dengan kurungan. Walau bagaimanapun, ungkapan fungsi boleh diikuti dengan kurungan. Untuk menukar pengisytiharan fungsi kepada ungkapan fungsi,
Cuma tambahkan sepasang kurungan padanya seperti di bawah.

(function(){
//这里是块级作用域
})();

Salin selepas log masuk

4.

function outputNumbers(count){
(function () {
for (var i=0; i < count; i++){
alert(i);
}
})();
alert(i); //导致一个错误!
}
Salin selepas log masuk
Dalam fungsi outputNumbers() yang ditulis semula ini, kami memasukkan skop peribadi di luar gelung for. Tanpa Nama

Sebarang pembolehubah yang ditakrifkan dalam fungsi akan dimusnahkan pada akhir pelaksanaan. Oleh itu, pembolehubah i hanya boleh digunakan dalam gelung dan dimusnahkan selepas digunakan.
Kiraan pembolehubah boleh diakses dalam skop peribadi kerana fungsi tanpa nama ini adalah penutupan dan ia boleh mengakses
dalam skop yang mengandungi. semua pembolehubah.

Teknik ini sering digunakan fungsi luar dalam skop global untuk mengehadkan penambahan terlalu banyak pembolehubah dan fungsi pada skop global.

Secara umumnya, kita harus cuba menambah sedikit pembolehubah dan fungsi pada skop global yang mungkin. Dalam projek
besar yang melibatkan ramai pembangun Dalam aplikasi, terlalu banyak pembolehubah dan fungsi global boleh menyebabkan konflik penamaan dengan mudah. Dengan mencipta skop peribadi, setiap pembangun boleh
untuk menggunakan pembolehubah anda sendiri tanpa perlu risau tentang mengacaukan skop global. Contohnya:

(function(){
var now = new Date();
if (now.getMonth() == 0 && now.getDate() == 1){
alert("Happy new year!");
}
})();
Salin selepas log masuk
Letakkan kod di atas dalam skop global, yang boleh digunakan untuk menentukan hari mana ialah 1 Januari jika sampai hari ini, ia akan digunakan

Pengguna memaparkan mesej ucapan Tahun Baru. Pembolehubah kini kini merupakan pembolehubah tempatan dalam fungsi tanpa nama, dan kita tidak perlu berada dalam skop global
Cipta dalam .

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan