คำถามติดแท็ก ecmascript-next

4
วิธีการใช้ฟังก์ชั่นลูกศร (เขตข้อมูลชั้นสาธารณะ) เป็นวิธีการเรียน?
ฉันยังใหม่กับการใช้คลาส ES6 กับ React ก่อนหน้านี้ฉันผูกเมธอดของฉันกับวัตถุปัจจุบัน (แสดงในตัวอย่างแรก) แต่ ES6 อนุญาตให้ฉันผูกฟังก์ชันคลาสกับอินสแตนซ์ของคลาสด้วยลูกศรอย่างถาวรหรือไม่ (มีประโยชน์เมื่อผ่านเป็นฟังก์ชั่นการโทรกลับ) ฉันได้รับข้อผิดพลาดเมื่อฉันพยายามใช้พวกเขาเท่าที่คุณสามารถทำได้ด้วย CoffeeScript: class SomeClass extends React.Component { // Instead of this constructor(){ this.handleInputChange = this.handleInputChange.bind(this) } // Can I somehow do this? Am i just getting the syntax wrong? handleInputChange (val) => { console.log('selectionMade: ', val); } ดังนั้นถ้าฉันจะส่งผ่านSomeClass.handleInputChangeไปเช่นsetTimeoutมันจะถูกกำหนดขอบเขตให้กับอินสแตนซ์ของชั้นเรียนไม่ใช่windowวัตถุ

11
หนึ่งซับเพื่อนำคุณสมบัติบางอย่างจากวัตถุใน ES 6
วิธีหนึ่งสามารถเขียนฟังก์ชั่นซึ่งใช้เพียงไม่กี่คุณลักษณะในวิธีกะทัดรัดที่สุดใน ES6? ฉันคิดวิธีแก้ปัญหาโดยใช้ destructuring + วัตถุที่ทำให้เข้าใจง่าย แต่ฉันไม่ชอบรายการของฟิลด์ซ้ำในรหัส มีวิธีการที่บางกว่าหรือไม่? (v) => { let { id, title } = v; return { id, title }; }

1
JavaScript ดับเบิ้ลโคลอน (ตัวดำเนินการผูก)
ดังที่คุณทราบมีข้อเสนอสำหรับทางลัดสำหรับ.bind()ฟังก์ชันดังนั้นคุณสามารถเขียน: ::this.handleStuff และมันจะทำงานเช่นนั้นใน es5: this.handleStuff.bind(this) คำถามของฉันคือจะสามารถส่งผ่านข้อโต้แย้งด้วยวิธีนี้ได้หรือไม่? ฉันหมายถึงวิธีการเขียนสิ่งนี้ด้วยทางลัดดังกล่าวข้างต้น: this.handleStuff.bind(this, 'stuff') มันเป็นรูปแบบทั่วไปใน React ดังนั้นจึงเป็นการดีที่จะย่อให้สั้นลงเล็กน้อย

4
async / รอผลตอบแทนสัญญาโดยปริยาย?
ฉันอ่านว่าฟังก์ชัน async ที่ทำเครื่องหมายโดยasyncคำหลักส่งคืนสัญญาโดยปริยาย: async function getVal(){ return await doSomethingAync(); } var ret = getVal(); console.log(ret); แต่นั่นไม่สอดคล้องกัน ... สมมติว่าdoSomethingAsync()ส่งคืนคำสัญญาและคีย์เวิร์ด await จะคืนค่าจากสัญญาไม่ใช่คำสัญญาจากนั้นฟังก์ชัน getVal ของฉันควรส่งคืนค่านั้นไม่ใช่คำสัญญาโดยปริยาย แล้วกรณีนี้คืออะไรกันแน่? ฟังก์ชันที่ทำเครื่องหมายโดยคำหลัก async ส่งคืนสัญญาโดยปริยายหรือเราควบคุมสิ่งที่ส่งคืนหรือไม่ บางทีถ้าเราไม่คืนของอย่างชัดเจนพวกเขาก็จะคืนสัญญาโดยปริยาย ... ? เพื่อให้ชัดเจนยิ่งขึ้นมีความแตกต่างระหว่างด้านบนและ function doSomethingAync(charlie) { return new Promise(function (resolve) { setTimeout(function () { resolve(charlie || 'yikes'); }, 100); }) } async function …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.