คำถามติดแท็ก function-expression

5
เหตุใดจึงใช้นิพจน์ฟังก์ชันที่มีชื่อ
เรามีสองวิธีที่แตกต่างกันในการแสดงฟังก์ชันใน JavaScript: นิพจน์ฟังก์ชันที่ตั้งชื่อ (NFE) : var boo = function boo () { alert(1); }; นิพจน์ฟังก์ชันที่ไม่ระบุชื่อ : var boo = function () { alert(1); }; boo();และทั้งสองของพวกเขาสามารถเรียกว่ามี ฉันไม่เห็นว่าทำไม / เมื่อใดที่ฉันควรใช้ฟังก์ชันที่ไม่ระบุตัวตนและเมื่อใดที่ฉันควรใช้นิพจน์ฟังก์ชันที่มีชื่อ อะไรคือความแตกต่างระหว่างพวกเขา?

5
เรียกใช้ฟังก์ชันจาวาสคริปต์ซ้ำ
ฉันสามารถสร้างฟังก์ชันวนซ้ำในตัวแปรดังนี้: /* Count down to 0 recursively. */ var functionHolder = function (counter) { output(counter); if (counter > 0) { functionHolder(counter-1); } } ด้วยวิธีนี้จะส่งออกfunctionHolder(3); 3 2 1 0สมมติว่าฉันทำสิ่งต่อไปนี้: var copyFunction = functionHolder; copyFunction(3);จะแสดงผลลัพธ์3 2 1 0ตามด้านบน ถ้าฉันเปลี่ยนแล้วfunctionHolderดังนี้: functionHolder = function(whatever) { output("Stop counting!"); จากนั้นfunctionHolder(3);จะให้Stop counting!ตามที่คาดไว้ copyFunction(3);ตอนนี้ให้3 Stop counting!ตามที่อ้างถึงfunctionHolderไม่ใช่ฟังก์ชัน (ที่ตัวเองชี้ไป) สิ่งนี้อาจเป็นที่พึงปรารถนาในบางสถานการณ์ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.