Arrow Function កំណែចាវ៉ាស្ក្រីបត៍ ES6

Chhouk Davy| M-E, Programming, Space, Technology.
ថ្ងៃទី៖ 1 កក្កដា 2020
ប្រវែង៖ 2 នាទី
Arrow Function ឫ Fat Arrow Function ជារបៀបសរសេរ Function មួយបែបក្នុងភាសាចាវ៉ាស្ក្រីបត៍ដែលត្រូវបានបញ្ចេញក្នុងកំណែ ES6។ ចំណុចពិសេសរបស់វាគឺ ខ្លីងាយស្រួលសរសេរ ហើយវាមិនមាន Bindings ផ្ទាល់ខ្លួនរបស់វាទេ។ ពេលប្រើ Arrow Function យើងនឹងមិនអាចហៅ this, arguments, super ឫ new.target បានទេព្រោះវាអត់មានរបស់ទាំងអស់នេះក្នុងខ្លួនវាទេ។
thisជា keyword មួយដែលជាទូទៅយើងប្រើសម្រាប់ហៅ Key ឫ Property របស់ Object ឫ Class។ តែសម្រាប់ Arrow Function វានឹងហៅthisរបស់ Function, Closure ឫ Class មេវិញ។argumentsជា Variable មួយដែលជា Array នៅក្នុង Function មួយដែលអាចឲ្យយើងហៅ Arguments របស់ Function នោះបាន។superជា keyword មួយដែលយើងប្រើសម្រាប់ហៅ constructor របស់ Parent Class។ Arrow Function មិនអាចប្រើជា constructor function បាននោះទេ ហើយវាក៏មិនមាន keyword នេះក្នុងខ្លួនវាដែរ។new.targetជា pseudo-property មួយដែលអាចឲ្យយើងចាប់ដឹងថា Function ឫ Constructor ត្រូវបានហៅដោយប្រើ new ដែរឫទេ។ យើងមិនអាចហៅ property នេះបានទេក្នុង Arrow Function។
/**
* Arrow vs Normal Function
*/
const arrowFunc = () => 'Arrow Function'
console.log(arrowFunc()) // Arrow Function
// VS.
function normalFunc() {
return 'Normal Function'
}
console.log(normalFunc()) // Normal Functionប្រការល្អដែលគួរធ្វើពេលប្រើ Arrow Function
ខាងក្រោមនេះជាចំណុចមួយចំនួនដែលអាចជួយឲ្យការប្រើប្រាស់ Arrow Function បានប្រសើរបាន៖
- បើអាចសរសេរវាត្រឹមមួយបន្ទាត់
const array = [1, 2, 3]
array.map((number) => {
return number * 2
})យើងអាចសរសេរបែបនេះវិញ
const array = [1, 2, 3]
array.map((number) => number * 2)ធ្វើបបែបនេះ កូដយើងខ្លីជាងមុន ហើយក៏ងាយស្រួលអានដែរ។
- ពេលត្រូវប្រើធៀប
<,>,>=ជាពិសេស<=ដែលវាអាចធ្វើឲ្យយើងពិបាកអាន យើងគួរតែប្រើឃ្នាប()
ឧទាហរណ៍៖
const negativeToZero = (number) => (number <= 0 ? 0 : number)យើងអាចសរសេរបែបនេះវិញ
const negativeToZero = (number) => (number <= 0 ? 0 : number)- បើ nested ច្រើនជាន់
ឧទាហរណ៍៖
myButton.addEventListener('click', () => {
fetch('/items.json')
.then((response) => response.json())
.then((json) => {
json.forEach((item) => {
console.log(item.name)
})
})
})យើងអាចសរសេរបែបនេះវិញ
const readItemsJson = (json) => {
json.forEach((item) => console.log(item.name))
}
const handleButtonClick = () => {
fetch('/items.json')
.then((response) => response.json())
.then(readItemsJson)
}
myButton.addEventListener('click', handleButtonClick)កាលដែលយើងសរសេរបែបនេះ ខ្ញុំថាវាងាយស្រួលអានជាង។ ហើយមួយទៀតនោះ បើយើង debug ក្នុង devtools ក្នុង browser យើងនឹងឃើញឈ្មោះ function ជាជាង anonymous ដែលវាជួយឲ្យយើងងាយយល់ដែរ។
- របៀប return object
កូដខាងក្រោមនេះមិនអាចរាន់បានទេ ព្រោះ interpreter គិតថា {} ជារបស់ Arrow Function មិនមែន Object ទេ។
const array = [1, 2, 3];
// throws SyntaxError!
array.map(number => { 'number': number });អ៊ីចឹងហើយ យើងត្រូចសរសេរបែននេះវិញ
const array = [1, 2, 3]
// Works!
array.map((number) => ({ number: number }))សម្រាប់ Arrow Fucntion ខ្ញុំមានប៉ុណ្ណឹងឯងចង់ណែនាំ។ អ្នកទាំងអស់គ្នាយល់យ៉ាងណាដែរ ហើយមានអ្វីបន្ថែបពីលើនេះទេ? កុំភ្លេចខំមិននៅខាងក្រោម។ Happy Coding!







