parent.parentProp remains 'parent value' because: 1) Assigning child.parentProp creates a new property on the child object, 2) This new property shadows (masks) the parent's property of the same name, 3) The parent object's property is completely unaffected by the assignment, 4) This demonstrates property shadowing in the prototype chain, 5) When accessing child.parentProp, the child's own property is found first, 6) This behavior allows objects to override inherited properties without modifying the original. This is a key aspect of prototypal inheritance - prototype properties are never changed through instance assignments.