9
JS Boolean มีคุณสมบัติที่กำหนดเองเป็นแนวปฏิบัติที่ไม่ดีหรือไม่?
ใน JS คุณสามารถส่งคืนบูลีนที่มีคุณสมบัติแบบกำหนดเองได้ เช่น. เมื่อ Modernizr ทดสอบการรองรับวิดีโอจะส่งคืนtrueหรือfalseแต่ Boolean ที่ส่งคืน (Bool เป็นออบเจ็กต์ชั้นหนึ่งใน JS) มีคุณสมบัติที่ระบุรูปแบบที่สนับสนุน ตอนแรกมันทำให้ฉันประหลาดใจนิดหน่อย แต่จากนั้นฉันก็เริ่มชอบความคิดและเริ่มสงสัยว่าทำไมมันถึงถูกใช้อย่าง จำกัด ดูเหมือนว่าเป็นวิธีที่ยอดเยี่ยมในการจัดการกับสถานการณ์ทั้งหมดที่คุณต้องการทราบว่ามีบางสิ่งที่เป็นจริงหรือเท็จ แต่คุณอาจสนใจข้อมูลเพิ่มเติมบางอย่างที่คุณสามารถกำหนดได้โดยไม่ต้องกำหนดวัตถุส่งคืนแบบกำหนดเองหรือใช้ฟังก์ชัน ยอมรับพารามิเตอร์เพิ่มเติม วิธีนี้คุณจะรักษาลายเซ็นฟังก์ชันที่เป็นสากลโดยไม่ลดทอนความสามารถในการส่งคืนข้อมูลที่ซับซ้อน มีข้อโต้แย้ง 3 ข้อที่ฉันสามารถจินตนาการได้: มันค่อนข้างแปลก / คาดไม่ถึงเมื่อมันน่าจะดีกว่าสำหรับอินเทอร์เฟซใด ๆ ที่จะชัดเจนและไม่ยุ่งยาก นี่อาจเป็นอาร์กิวเมนต์คนฟาง แต่เป็นกรณีเล็กน้อยฉันสามารถจินตนาการมัน backfires เงียบ ๆ ใน JS optimizer, uglifier, VM หรือหลังจากการเปลี่ยนแปลงข้อกำหนดภาษาเล็กน้อยทำความสะอาด ฯลฯ มีวิธีที่ดีกว่ากระชับชัดเจนและเหมือนกันทุกประการ ดังนั้นคำถามของฉันคือมีเหตุผลใดที่ควรหลีกเลี่ยงการใช้ Booleans ด้วยคุณสมบัติเพิ่มเติมหรือไม่ พวกเขาเป็นกลอุบายหรือการรักษา? แผนบิดเตือน ข้างต้นเป็นคำถามเดิมในเกียรติศักดิ์เต็ม ในฐานะที่เป็น Matthew Crumley …