This visual execution shows why prototypes are needed in JavaScript. When you try to access a property on an object, JavaScript first looks on the object itself. If it does not find the property, it looks on the object's prototype, then the prototype's prototype, and so on until it finds the property or reaches the end of the chain. The example code shows accessing obj.a which is found on obj, and obj.b which is initially undefined. After adding b to obj's prototype, accessing obj.b returns 2. This demonstrates how prototypes allow objects to share properties and methods without duplicating them. The execution table traces each step of property lookup and modification. The variable tracker shows how obj and its prototype change. Key moments clarify why property lookup works this way. The quiz tests understanding of the prototype lookup process. Overall, prototypes are needed to enable efficient property sharing and inheritance in JavaScript.