当前位置:首页 > JavaScript

实现一个js原型继承

2026-03-02 01:05:02JavaScript

原型继承的基本概念

在JavaScript中,每个对象都有一个内部属性[[Prototype]],通常通过__proto__Object.getPrototypeOf()访问。原型继承允许对象从另一个对象继承属性和方法。

构造函数方式实现原型继承

通过构造函数和prototype属性实现继承:

实现一个js原型继承

function Parent(name) {
  this.name = name;
}
Parent.prototype.sayHello = function() {
  console.log(`Hello, ${this.name}`);
};

function Child(name, age) {
  Parent.call(this, name);
  this.age = age;
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;

const child = new Child('Alice', 10);
child.sayHello(); // 输出: Hello, Alice

ES6 class语法实现继承

使用ES6的classextends关键字更简洁:

实现一个js原型继承

class Parent {
  constructor(name) {
    this.name = name;
  }
  sayHello() {
    console.log(`Hello, ${this.name}`);
  }
}

class Child extends Parent {
  constructor(name, age) {
    super(name);
    this.age = age;
  }
}

const child = new Child('Bob', 12);
child.sayHello(); // 输出: Hello, Bob

Object.create实现纯对象继承

直接通过对象之间的继承:

const parent = {
  greet() {
    console.log(`Hi, ${this.name}`);
  }
};

const child = Object.create(parent);
child.name = 'Charlie';
child.greet(); // 输出: Hi, Charlie

原型链的注意事项

修改子类原型时需保持原型链完整:

Child.prototype.newMethod = function() {
  console.log(`Age: ${this.age}`);
};

避免直接修改__proto__属性,这会带来性能问题。优先使用Object.create()class语法。

标签: 原型js
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…

js 实现超链接

js 实现超链接

使用 HTML 的 <a> 标签 在 JavaScript 中动态创建超链接可以通过操作 DOM 实现。通过 document.createElement 创建一个 <a> 元…