Tolong beritahu saya cara menulis javascript di bawah dalam coffeescript.
setTimeout(function(){
something(param);
}, 1000);
javascript
settimeout
coffeescript
tomodian
sumber
sumber
Jawaban:
Saya pikir ini adalah konvensi yang berguna untuk callback yang akan datang sebagai argumen terakhir untuk suatu fungsi. Ini biasanya terjadi dengan API Node.js, misalnya. Maka dengan itu dalam pikiran:
Memang, ini menambahkan overhead panggilan fungsi ekstra untuk setiap yang
setTimeout
Anda lakukan; tetapi dalam penerjemah JS hari ini, kelemahan kinerja tidak signifikan kecuali Anda melakukannya ribuan kali per detik. (Lagi pula, apa yang Anda lakukan dengan menetapkan batas waktu mati per detik?)Tentu saja, pendekatan yang lebih mudah adalah dengan menyebut nama panggilan balik Anda, yang cenderung menghasilkan kode yang lebih mudah dibaca (jashkenas adalah penggemar berat idiom ini):
sumber
Tanda kurung adalah opsional, tetapi memulai baris dengan koma tampak berantakan bagi saya.
sumber
setTimeout
dan paren pembuka penting. Ruang di sana berarti tanda kurung mengelilingi penutupan sebagai parameter pertama ke setTimeout; jika langsung setelah t maka coffescript akan mengharapkan tanda kurung untuk melampirkan kedua parameter.sumber
something param
berada pada baris yang sama dengansetTimeout
, ia akan diuraikan secara berbeda.Ini akan menghasilkan terjemahan yang kurang lebih setara (terima kasih @ Joel Mueller):
Perhatikan bahwa ini bukan terjemahan yang tepat karena fungsi anonim mengembalikan hasil panggilan
something(param)
alih-alih tidak ditentukan, seperti dalam cuplikan Anda.sumber
setTimeout (() -> something param), 1000
Saya menemukan ini metode terbaik untuk melakukan hal yang sama,
sumber
pilihan lain:
sumber