cari

Rumah  >  Soal Jawab  >  teks badan

javascript - masalah fungsi tanpa nama pemasa

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

高洛峰高洛峰2753 hari yang lalu437

membalas semua(3)saya akan balas

  • 阿神

    阿神2017-05-19 10:38:56

    Parameter pertama setInterval menerima rentetan dan akan menghuraikan rentetan ke dalam pernyataan fungsi untuk pelaksanaan.

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:38:56

    Mula-mula mari kita lihat penjelasan W3C tentang setInterval

    dan kemudian lihat

    1. setInterval("ssss()", 1000);

    2. setInterval(ssss(), 1000);

    1 Kemudian ralat akan dilaporkan semasa melaksanakan
    2. Fungsi badan ssss()

    .
    function ssss(){
        console.log(++a)
    }

    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

    balas
    0
  • 某草草

    某草草2017-05-19 10:38:56

    Jika anda tidak menambah petikan berganda, anda perlu mengalih keluar tanda kurung dan hanya menulis nama fungsi

    balas
    0
  • Batalbalas