var a = 0;
function fn(){
ssss.call(null,a)
// 为什么 定时器里面的匿名函数加上字符串跟直接执行不同???
setInterval("ssss()", 1000);
setInterval(ssss(), 1000);
}
function ssss(){
console.log(++a)
}
fn();
Sila minta tuan untuk menerangkan prinsip disebaliknya
Parameter pertama setInterval menerima rentetan dan akan menghuraikan rentetan ke dalam pernyataan fungsi untuk pelaksanaan.
Mula-mula mari kita lihat penjelasan W3C tentang setInterval
dan kemudian lihat
setInterval("ssss()", 1000);
setInterval(ssss(), 1000);
1 Kemudian ralat akan dilaporkan semasa melaksanakan
.2. Fungsi badan ssss()
Tiada nilai pulangan, tetapi ambil perhatian bahawa terdapat ayat ssss.call(null,a) dalam fungsi fn, maka terdapat nilai pulangan dalam fungsi fn. Selain itu, nilai pulangan hanyalah fungsi, jadi ia memenuhi keperluan fungsi setInterval dan akan terus dilaksanakan
Jika anda tidak menambah petikan berganda, anda perlu mengalih keluar tanda kurung dan hanya menulis nama fungsi