Skip to content

输出什么?

javascript
class Bird {
	constructor() {
		console.log("I'm a bird. 🦢");
	}
}

class Flamingo extends Bird {
	constructor() {
		console.log("I'm pink. 🌸");
		super();
	}
}

const pet = new Flamingo();

A. I'm pink. 🌸 B. I'm pink. 🌸 I'm a bird. 🦢 C. I'm a bird. 🦢 I'm pink. 🌸 D. Nothing, we didn't call any method

答案: B

解析:

我们创建了类 Flamingo 的实例 pet

当我们实例化这个实例,Flamingo 中的 constructor 被调用。

首先,输出 "I'm pink. 🌸", 之后我们调用super()super() 调用父类的构造函数,BirdBird 的构造函数被调用,并输出 "I'm a bird. 🦢"