Popraw mnie jeśli się mylę, ale mój zrozumienia jest to, że
function transformer(transformationFn, value) {
return (transformationFn || angular.identity)(value);
};
może być "un-refactored" do tej
function transformer(transformationFn, value) {
if (transformationFn) {
return transformationFn(value);
} else {
return angular.identity(value);
}
};
co byłoby równoważne funkcjonalnie to identity
-less wersja:
function transformer(transformationFn, value) {
if (transformationFn) {
return transformationFn(value);
} else {
return value;
}
};
Sądzę więc, że przypadek użycia będzie wtedy, gdy chcesz zastosować pewną transformację do wartości, gdy otrzymasz coś, co może faktycznie istnieć.
Chciałem lepiej wyjaśnić funkcję identity
(jak rozumiem), chociaż kiedy przeglądam swoją odpowiedź, nie sądzę, żebym naprawdę odpowiedział na twoje pytanie. Pozostawiając moją odpowiedź tutaj, na wszelki wypadek, jeśli jest to pomocne.
I nie rozumiem, dlaczego nazywamy angular.identity() '' funkcji (gdy transformationFn jest niezdefiniowany) i co robi na wywołanie. – mia
Zasadniczo jest tu używana jako domyślna implementacja - gdy nie jest dostarczana żadna funkcja transformacji, po prostu wracamy do tożsamości (tj. Bez transformacji). –