[問題] 關於某表述方法問題

看板Ajax作者 (三更燈火五更雞)時間2年前 (2022/06/26 11:16), 編輯推噓1(101)
留言2則, 1人參與, 2年前最新討論串1/1
想請問版上各位大神以下的code: function getData(name, callback){ setTimeout(() => { callback({ name: name, age: Math.floor(Math.random()*10)}); }, 2000); } function getMovies(age, callback) { if (age < 12) { setTimeout(() => { callback("cartoon movies"); }, 1500); } else if (age < 18) { setTimeout(() => { callback("teen movies"); },1500); } else { setTimeout(() => { callback("adult movies"); }, 1500); } } 上方function declaration之中的 callback({ name: name, age: Math.floor(Math.random()*10)}); 是什麼樣的表述方法呢? 看起來像 let callback = {name: name, age: Math.floor(Math.random()*10)}; 但沒有let跟=且多了(); 又像是單純的array object,如{name: name, age: Math.floor(Math.random()*10)};但前面卻多了一個callback() 把他包起來? 難道callback放在{name: name, age: Math.floor(Math.random()*10)};前面就只是要與上方的參數對照嗎? 感謝各位大大解惑! ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.112.162 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1656213408.A.F46.html

06/26 13:52, 2年前 , 1F
callback是一個函式 callback()是呼叫函式
06/26 13:52, 1F

06/26 13:53, 2年前 , 2F
callback({...})是在呼叫函式時傳入一個物件
06/26 13:53, 2F
文章代碼(AID): #1Yjy-Wz6 (Ajax)
文章代碼(AID): #1Yjy-Wz6 (Ajax)