2016-04-18 20 views
15

Czy istnieje powód, aby nie używać strzałek zamiast wyrażeń funkcji regularnych w programach ekspresowych dla programów obsługi w oprogramowaniu pośredniczącym?Funkcje strzałek harmony es6 w ekspresowych programach obsługi

app.use(mountSomething()) 
router.use(mountSomethingElse()) 

app.get('/', (req,res,next)=> { 
    next(); 
}) 

route.get('/path', (req,res,next)=>{ 
    res.send('send') 
}) 
+2

Co sprawia, że ​​myślisz, że nie powinieneś używać funkcji strzałek zamiast zwykłych funkcji? – saadq

+0

@saadq Edytowałem pytanie –

+0

Jedyną różnicą pomiędzy zwykłym wyrażeniem funkcji a funkcją strzałki jest to, że funkcja strzałki nie wiąże swojej własnej wartości 'this' (możesz przeczytać więcej na ten temat [tutaj] (https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)). Tak więc w przypadku takim jak ten, w którym nie trzeba używać 'this', użycie funkcji strzałki byłoby w porządku. – saadq

Odpowiedz

10
app.get('/', (req,res,next)=> { 
    next(); 
}) 

jest taka sama jak

app.get('/', function(req,res,next) { 
     next(); 
}.bind(this)) 

W większości przypadków nie będą używać „to” (który będzie prawdopodobnie niezdefiniowany) w teleskopowe, dzięki czemu mogą swobodnie korzystać funkcje strzałek.