Поправьте меня, если я ошибаюсь, но я понимаю, что это
function transformer(transformationFn, value) {
return (transformationFn || angular.identity)(value);
};
может быть «не-переработан» в этом
function transformer(transformationFn, value) {
if (transformationFn) {
return transformationFn(value);
} else {
return angular.identity(value);
}
};
, который будет функционально эквивалентен это identity
-версия:
function transformer(transformationFn, value) {
if (transformationFn) {
return transformationFn(value);
} else {
return value;
}
};
Таким образом, я предполагаю, что прецедент был бы применен, когда вы хотите применить определенное преобразование к значению, когда вам предоставляется что-то, что может или не может существовать на самом деле.
Я хотел бы лучше объяснить функцию identity
(как я понимаю), хотя, когда я просматриваю свой ответ, я не думаю, что я действительно ответил на ваш вопрос. Оставляя мой ответ здесь, в любом случае, если это будет полезно.
Я не понимаю, почему мы называем 'angular.identity()' функция (когда transformationFn не определено) и то, что он делает по призванию. – mia
В основном он используется в качестве реализации по умолчанию - когда функция преобразования не предоставляется, просто возвращайтесь к идентификатору (т. Е. Без преобразования). –