千家信息网

js如何实现​原型链继承

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了js如何实现原型链继承,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。既然要实现继承,那么首先我们得有一个父类,代码如
千家信息网最后更新 2025年01月31日js如何实现​原型链继承

这篇文章主要介绍了js如何实现原型链继承,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

既然要实现继承,那么首先我们得有一个父类,代码如下:

// 定义一个动物类function Animal (name) {  // 属性  this.name = name || 'Animal';  // 实例方法  this.sleep = function(){    console.log(this.name + '正在睡觉!');  }}// 原型方法Animal.prototype.eat = function(food) {  console.log(this.name + '正在吃:' + food);};

原型链继承

核心: 将父类的实例作为子类的原型

function Cat(){ }Cat.prototype = new Animal();Cat.prototype.name = 'cat';// Test Codevar cat = new Cat();console.log(cat.name);console.log(cat.eat('fish'));console.log(cat.sleep());console.log(cat instanceof Animal); //true console.log(cat instanceof Cat); //true

特点:

  • 非常纯粹的继承关系,实例是子类的实例,也是父类的实例

  • 父类新增原型方法/原型属性,子类都能访问到

  • 简单,易于实现

缺点:

  • 要想为子类新增属性和方法,可以在Cat构造函数中,为Cat实例增加实例属性。如果要新增原型属性和方法,则必须放在new Animal()这样的语句之后执行。

  • 无法实现多继承

  • 来自原型对象的所有属性被所有实例共享

  • 创建子类实例时,无法向父类构造函数传参

感谢你能够认真阅读完这篇文章,希望小编分享的"js如何实现原型链继承"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0