What is problematic about this inheritance approach?
function Animal() {}
Animal.prototype.speak = function() { return this.sound || 'Default sound'; };
function Cat() {}
Cat.prototype = new Animal();
Cat.prototype.sound = 'Meow';
Using new Animal() to set up inheritance is problematic because: 1) Cat.prototype becomes a specific Animal instance, not just linked to Animal.prototype, 2) Any properties set on the Animal instance (not its prototype) become shared among all Cat instances, 3) If Animal constructor expects parameters, they're undefined in this approach, 4) It executes the Animal constructor unnecessarily, 5) This pattern can cause unexpected behavior with instance properties, 6) Using Object.create(Animal.prototype) is preferred as it only inherits from the prototype without creating an instance. This approach is considered an anti-pattern in modern JavaScript.