JavaScript Function Arrow
- หน้าก่อนหน้า JS ใช้งาน this คำศัพท์
- หน้าต่อไป JS ชนิด
ฟังก์ชันทิ้งหลักฐานถูกเสนอให้ใช้ใน ES6
ฟังก์ชันทิ้งหลักฐานทำให้เราสามารถเขียนฟังก์ชันที่สั้นลง
การเขียน
let myFunction = (a, b) => a * b;
ก่อนหน้านี้
hello = function() { return "Hello World!"; }
หลังจากใช้ฟังก์ชันทิ้งหลักฐาน
hello = () => { return "Hello World!"; }
แท้จริงแล้วมันยังสั้นลงมาแล้ว! ถ้าฟังก์ชันมีเพียงคำสั่งเดียวและคำสั่งนั้นกลับค่า คุณสามารถละเลยกล่องวงเล็บและ return
คำว่า
ฟังก์ชันทิ้งหลักฐานมีค่ากลับคำสั่งโดยมาตรฐาน
hello = () => "Hello World!";
หมายเหตุ:นี่มีผลบวกเฉพาะเมื่อฟังก์ชันมีเพียงแค่คำสั่งเดียว
ถ้ามีตัวแปร คุณจะต้องส่งมอบให้กับกล่องวงเล็บ
ฟังก์ชันทิ้งหลักฐานที่มีตัวแปร
hello = (val) => "Hello " + val;
ในความเป็นจริง ถ้ามีเพียงหนึ่งตัวแปร คุณก็สามารถละเลยกล่องวงเล็บได้
ฟังก์ชันทิ้งหลักฐานที่ไม่มีกล่องวงเล็บ
hello = val => "Hello " + val;
this
แล้วจะทำอย่างไร?
เมื่อเทียบกับฟังก์ชันทั่วไป this
ในการจัดการ
โดยทั่วไป การใช้ฟังก์ชันทิ้งหลักฐานจะทำให้มีความแตกต่างต่อการจัดการ this
ที่ถูกจับบังคับ
ในฟังก์ชันทั่วไป this
หมายถึงวัตถุที่เรียกฟังก์ชันนี้ สามารถเป็น window และ document หรือปุ่ม หรือสิ่งอื่นๆ
สำหรับฟังก์ชันทิ้งหลักฐานthis
คำว่าคีย์วอร์ดเฉพาะว่าตัวแปรที่เรียกใช้ประกาศฟังก์ชันทิ้งหลักฐาน
ให้เราดูตัวอย่างสองตัวเพื่อเข้าใจความแตกต่าง
ทั้งสองตัวอย่างนี้เรียกเมธอดสองครั้ง ครั้งแรกเมื่อหน้าเว็บโหลด ครั้งที่สองเมื่อผู้ใช้กดปุ่ม
ตัวอย่างแรกใช้ฟังก์ชันทั่วไป ตัวอย่างที่สองใช้ฟังก์ชันทิ้งหลักฐาน
ผลลัพธ์ที่แสดงให้เห็นว่าตัวอย่างแรกคืนค่าสองวัตถุที่แตกต่างกัน (window และ button) ตัวอย่างที่สองคืนค่า window สองครั้ง เพราะวัตถุ window คือ 'เจ้าของ' ของฟังก์ชัน
ตัวอย่าง
สำหรับฟังก์ชันทั่วไป,คำว่า this หมายถึงวัตถุที่เรียกฟังก์ชันนี้
// ฟังก์ชันทั่วไป: hello = function() { document.getElementById("demo").innerHTML += this; } // วัตถุ window โรงรับฟังก์ชันนี้: window.addEventListener("load", hello); // วัตถุ button โรงรับฟังก์ชันนี้: document.getElementById("btn").addEventListener("click", hello);
ตัวอย่าง
ใช้ฟังก์ชันทิ้งหลักฐาน this
แสดงว่าเจ้าของฟังก์ชัน:
// ฟังก์ชันแบบ arrow: hello = () => { document.getElementById("demo").innerHTML += this; } // วัตถุ window โรงรับฟังก์ชันนี้: window.addEventListener("load", hello); // วัตถุ button โรงรับฟังก์ชันนี้: document.getElementById("btn").addEventListener("click", hello);
จากการใช้ function อย่างไรที่คุณจำได้เหล่านี้ บางครั้งการปฏิบัติของ function ตามปกติอาจเป็นสิ่งที่คุณต้องการ แต่ถ้าไม่เป็น ใช้ function แบบ arrow
การสนับสนุนบราวเซอร์
ตารางด้านล่างบอกถึงเวอร์ชั่นบราวเซอร์ที่สนับสนุน function แบบ arrow อย่างเต็มที่:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 45 | Edge 12 | Firefox 22 | Safari 10 | Opera 32 |
กันยายน 2015 | กรกฎาคม 2015 | พฤษภาคม 2013 | กันยายน 2016 | กันยายน 2015 |
- หน้าก่อนหน้า JS ใช้งาน this คำศัพท์
- หน้าต่อไป JS ชนิด