21.继承后添加方法

说明

supertype构造函数继承其prototype对象的构造函数除了继承方法之外,还可以拥有自己的方法。

例如,Bird是一个从Animal继承其prototype的构造函数:

function Animal() { }
Animal.prototype.eat = function() {
  console.log("nom nom nom");
};
function Bird () { }
Bird.prototype = Object.create(Animal.prototype);
Bird.prototype.constructor = Bird;

除了继承自Animal的内容外,还需要添加Bird对象唯一的行为。在这里,Bird将获得一个fly()函数。函数被添加到Birdprototype中,与所有构造函数相同:

Bird.prototype.fly = function() {
  console.log("我在飞!");
};

现在,Bird的实例将同时具有eat()fly()方法:

var duck = new Bird();
duck.eat(); // prints "nom nom nom"
duck.fly(); // prints "我在飞!"


练习

添加所有必需的代码,使Dog对象从Animal继承,并将Dogprototype中的构造函数设置为Dog。然后在Dog对象中添加一个bark()方法,以便beagle可以同时有eat() bark()bark()方法应该打印“Woof!”到控制台。

  • Animal不应该响应bark()方法。
  • Dog应该从Animal继承eat()方法。
  • Dog 应该有 bark() 方法作为 自己的 属性
  • beagle 应该是 Animal的实例.
  • beagle的构造器应该设置为Dog
function Animal() { }
Animal.prototype.eat = function() { console.log("nom nom nom"); };

function Dog() { }

// Add your code below this line




// Add your code above this line

var beagle = new Dog();

beagle.eat(); // Should print "nom nom nom"
beagle.bark(); // Should print "Woof!"

答案

方法描述
function()是一个可以被其他代码或其自身调用的代码片段,或者是一个指向该函数的变量 。
Javascript构造函数函数名第一个字母大写。
prototype给对象添加属性和方法。
console.log()用于在控制台输出信息(浏览器按下 F12 打开控制台)。
Object构造函数创建一个对象包装器。
Object.create()创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。 
constructor 返回对创建此对象的数组函数的引用。
() =>箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。
var声明一个变量,并可选地将其初始化为一个值。
new创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。
function Animal() { }
Animal.prototype.eat = function() { console.log("nom nom nom"); };

function Dog() { }

// Add your code below this line

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.bark = () => console.log("Woof!");

// Add your code above this line

var beagle = new Dog();

beagle.eat(); // Should print "nom nom nom"
beagle.bark(); // Should print "Woof!"

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值