Bagaimana cara menulis ini di coffeescript?
f = (function(){
// something
})();
Terima kasih atas tipnya :)
javascript
javascript-framework
coffeescript
pengguna537339
sumber
sumber
f = do -> console.log x
-> console.log 'this runs right away'
kef
, lalu menjalankannya; milik Anda menjalankan fungsi dan kemudian memberikan hasilnya kef
, seperti pada pertanyaan awal. (Meskipun dalam kasusconsole.log
, nilai kembaliannya selaluundefined
saja.){f: do -> // something}
do
juga memungkinkan Anda meneruskan argumen ke fungsi tersebut. Untuk lulus1
dan2
sebagai parameterx
dany
, tulisdo (x = 1, y = 2) ->
. (Dokumentasi untuk fitur ini telah hilang , tetapi masalah di mana fitur tersebut diperkenalkan memiliki beberapa contoh.)Jika Anda ingin "membuat alias" argumen yang diteruskan ke fungsi pemanggilan mandiri di CoffeeScript, dan katakanlah inilah yang ingin Anda capai:
(function ( global, doc ) { // your code in local scope goes here })( window, document );
Maka
do (window, document) ->
tidak akan membiarkan Anda melakukan itu. Cara untuk pergi adalah dengan parens maka:(( global, doc ) -> # your code here )( window, document )
sumber
do (global=window, doc=document) ->
sangat mudah dalam kopi:
do ->
akan kembali
(function() {})();
sumber
Anda juga dapat menggabungkan
do
kata kunci dengan parameter fungsi default untuk menyemai "fungsi yang memulai sendiri" rekursif dengan nilai awal. Contoh:do recursivelyPrint = (a=0) -> console.log a setTimeout (-> recursivelyPrint a + 1), 1000
sumber
coba gunakan
do ($ = jQuery) ->
sumber
do -> #your stuff here
Ini akan membuat penutupan yang dijalankan sendiri, yang berguna untuk pelingkupan.
sumber
Maaf, saya menyelesaikannya:
f = ( () -> "something" )()
sumber
do
kunci memiliki beberapa keterbatasan yang terkadang membuatnya perlu untuk menggunakan pendekatan gaya JS (lihat masalah 960 );do
benar-benar hanya ditambahkan karena kasus penggunaan loop-with-closures.Harus
f = () -> # do something
sumber