Dans la bibliothèque Lodash , quelqu'un peut-il fournir une meilleure explication de la fusion et de l' extension / assignation ?
C'est une question simple mais la réponse m'échappe néanmoins.
Dans la bibliothèque Lodash , quelqu'un peut-il fournir une meilleure explication de la fusion et de l' extension / assignation ?
C'est une question simple mais la réponse m'échappe néanmoins.
Voici comment etendre/affecter des travaux: Pour chaque propriété de la source, une copie de sa valeur en tant que-est à destination. si les valeurs de propriété sont eux-mêmes des objets, il n'est pas récursive de la traversée de leurs propriétés. Ensemble de l'objet seront prises à partir de la source et de l'ensemble de la destination.
Voici comment fusionner des travaux: Pour chaque propriété de la source, de vérifier si cette propriété est l'objet lui-même. Si c'est pour aller vers le bas de manière récursive et d'essayer de la carte enfant propriétés de l'objet à partir de la source à la destination. Donc, essentiellement, nous fondre l'objet de la hiérarchie de la source à la destination. Alors que pour étendre/céder, c'est simple une copie au niveau des propriétés de la source à la destination.
Voici simple JSBin qui permettrait de faire ce cristal clair: http://jsbin.com/uXaqIMa/2/edit?js console
Voici les plus élaborés, version qui inclut le tableau dans l'exemple ainsi: http://jsbin.com/uXaqIMa/1/edit?js console
Une autre différence à prendre en compte est la gestion des valeurs undefined
:
mergeInto = { a: 1}
toMerge = {a : undefined, b:undefined}
lodash.extend({}, mergeInto, toMerge) = {a: undefined, b:undefined}
lodash.merge({}, mergeInto, toMerge) = {a: 1, b:undefined}
Donc merge
ne fusionnera pas les valeurs undefined
valeurs définies.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.