Sepertinya CoffeeScript secara otomatis mengembalikan item terakhir dalam sebuah lingkup. Bisakah saya menghindari fungsi ini?
coffeescript
Shamoon
sumber
sumber
Jawaban:
Anda harus secara eksplisit tidak mengembalikan apa pun, atau membiarkan ekspresi mengevaluasi menjadi tidak terdefinisi di bagian bawah fungsi Anda:
Atau:
Inilah yang direkomendasikan oleh dok, saat menggunakan pemahaman:
Namun, Anda bisa menulis pembungkus seperti ini:
(Perhatikan operator percikan di sini (
...
))Dan gunakan seperti ini saat mendefinisikan fungsi:
Atau seperti ini:
sumber
return
,undefined
ataunull
ke akhir fungsi saya. Namun, menambahkannull
tampaknya salah bagi saya karena beberapa alasan. Apakah saya benar menganggapnya sebagai pilihan terburuk dari ketiganya?undfined
di akhir. Menggunakanreturn
pernyataan kosong tampaknya mengungkapkan tidak ada yang lebih baik daripada meninggalkanundefined
di akhir fungsi, jadi kosongreturn
tampaknya menjadi pilihan yang lebih baik.fun(arguments...)
, akan lebih baik meneleponfun.apply(this, arguments)
.Ya, dengan a
return
sebagai baris terakhir dari suatu fungsi.Sebagai contoh,
Jika Anda ingin melihat apa saja yang dikompilasi kopi, coba http://bit.ly/1enKdRl . (Saya telah menggunakan coffeescript redux untuk contoh saya)
sumber
Hanya sesuatu yang menyenangkan (ctional)
Function.prototype
itu sendiri adalah fungsi yang selalu tidak menghasilkan apa-apa. Anda dapat menggunakan compose untuk memasukkan nilai yang dikembalikan ke dalam lubang hitam ini dan fungsi yang dibuat tidak akan pernah mengembalikan apa pun.sumber
sumber
Tampaknya fungsi di CoffeeScript harus selalu mengembalikan sesuatu, bahkan
null
. Di C, Anda memilikivoid
tipe pengembalian.->
, fungsi kosong, dikompilasi(function() {})
, jadi itu satu-satunya fungsi yang tidak mengembalikan apa pun.sumber
return;
bekerja di C, JavaScript dan CoffeeScript untuk mengembalikan nilai kosong.