Challenge 1 — Solution Task: Define a class Animal with a constructor taking name, and a method speak() logging "{name} makes a sound." Create two Animal instances with different names and call speak() on each. class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a sound.`); } } const cat = new Animal("Whiskers"); const cow = new Animal("Bessie"); cat.speak(); cow.speak(); Expected output: Whiskers makes a sound. Bessie makes a sound. Notes: - this.name inside speak() refers to whichever instance speak() was called on — cat.speak() uses cat's name, cow.speak() uses cow's, even though both instances share the exact same speak method definition. - The constructor runs automatically the moment new Animal(...) is called, immediately setting this.name before anything else happens. - Each instance is completely independent — changing cat.name later would have no effect on cow.name.