DRY Penguins
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
创建一个新的Penguin
是不错的,但最终我们会重用很多多余Animal
类相同的代码。这就违背了编程“DRY
”的原则:Don’t Repeat Yourself。
继承可以在这里帮助我们,企鹅是一只动物,所以它应该具有Animal
的所有属性和方法。每当X is-a Y
的关系存在,这就是我们使用继承的一个好的机会。
请记住,继承让我们可以看到并使用另一个类的属性和方法。如果说Penguin
继承了Animal
,我们需要设置Penguin
的prototype
是Animal
。
说明:
- 创建一个新的
Penguin
类。Penguin
的构造函数可以比Animal多一个特征,因为所有的企鹅有2个腿。构造函数中应该只需要一个name参数,并在构造函数本身中设置this.numLegs
为2。 - 我们从来没有给
Penguin
定义一个sayName
方法,但当我们试图调用它时,会发生什么? - 创建一个
Penguin
对象变量名为penguin
或者任何你想要的名字。 - 然后调用
penguin.sayName();
设置Penguin类的prototype为Animal的一个新的实例:
Penguin.prototype = new Animal();
这意味着Penguin
从Animal
继承方法和属性
在线练习
{$ activeFileHint $}