【前端每日一题】 day3

JS的原型链如何实现继承,请写出一个例子

JavaScript中的原型链继承是通过原型(prototype)来实现的。每个对象都有一个原型(prototype),该原型又是一个对象,而这个对象又有自己的原型,以此类推,形成了一个原型链。当试图访问一个对象的属性或方法时,JavaScript会首先在该对象本身上查找,如果找不到,就会沿着原型链向上查找,直到找到相应的属性或方法,或者到达原型链的末端。

such as

javascript 复制代码
// 父类(超类)
function Animal(name) {
  this.name = name;
}

// 父类的方法
Animal.prototype.sayName = function() {
  console.log("My name is " + this.name);
};

// 子类(派生类)
function Dog(name, breed) {
  // 调用父类的构造函数
  Animal.call(this, name);
  this.breed = breed;
}

// 继承父类的原型
Dog.prototype = Object.create(Animal.prototype);

// 重设子类的构造函数,否则会指向父类
Dog.prototype.constructor = Dog;

// 子类的方法
Dog.prototype.bark = function() {
  console.log("Woof!");
};

// 创建一个实例
var myDog = new Dog("Max", "Labrador");

// 调用父类的方法
myDog.sayName(); // 输出:"My name is Max"

// 调用子类的方法
myDog.bark(); // 输出:"Woof!"

Animal 是一个父类,拥有一个属性 name 和一个方法 sayName。

Dog 是一个子类,通过调用父类的构造函数 Animal.call(this, name) 继承了父类的属性,并通过 Object.create(Animal.prototype) 继承了父类的方法。

在子类中,还可以定义自己的方法,比如 bark。

最后,通过创建 Dog 类的实例 myDog,我们可以看到实现了继承关系,并且可以调用父类和子类的方法。

相关推荐
陪我去看海6 分钟前
被要求猛出小程序,做了这个多平台多环境的部署替我承受压力
前端·微信小程序·抖音小程序
Frag0ut19 分钟前
告别插件时代:HTML5 视频播放对比 Flash/Silverlight/ActiveX 的性能与技术优势解析
前端·html5·视频播放·flash·activex·流媒体技术·silverlight
用户8186180280020 分钟前
MongoDB文档模型设计——从建模到索引
前端
無名路人1 小时前
小程序点餐页吸顶滚动之分类按需加载,上划切换
前端·vue.js·微信小程序
竹林8182 小时前
把神经网络塞进一个浏览器标签页:端侧视觉 AI 的工程真相
前端·浏览器
乘风gg2 小时前
别跟风 AI 副业,工程师最该学的是 AI Coding
前端·ai编程·claude
Frag0ut2 小时前
深度解析:Chrome 自启动与后台常驻服务的作用、关闭方法及利弊权衡
前端·chrome
Amos_Web2 小时前
Rspack 源码解析(十五):Loader Runner 与 JS Loader 桥接
前端·rust·前端框架
YIAN2 小时前
从 SSE 流式到结构化输出:LangChain 三大 OutputParser 与 ToolCall 方案全实战
前端·langchain·node.js
YIAN3 小时前
从 SSE 流式原理到 LangChain 结构化输出:打字机效果与 JSON 解析全方案实战
前端·langchain