当前位置:首页 > JavaScript

js override 实现

2026-04-05 21:57:47JavaScript

方法一:原型链继承与重写

通过原型链继承父类方法,并在子类中重新定义同名方法实现覆盖(override)。父类方法可通过 ParentClass.prototype.methodName.call(this) 调用。

function ParentClass() {}
ParentClass.prototype.greet = function() {
  return "Hello from Parent";
};

function ChildClass() {}
ChildClass.prototype = Object.create(ParentClass.prototype);
ChildClass.prototype.greet = function() {
  return "Hi from Child";
};

const child = new ChildClass();
console.log(child.greet()); // 输出: "Hi from Child"

方法二:ES6 Class 语法

使用 extendssuper 实现方法覆盖。super 关键字可调用父类方法。

class Parent {
  greet() {
    return "Parent says hello";
  }
}

class Child extends Parent {
  greet() {
    return "Child says hi";
  }
}

const instance = new Child();
console.log(instance.greet()); // 输出: "Child says hi"

方法三:对象属性直接覆盖

直接修改对象的属性或方法,适用于实例级别的覆盖。

const obj = {
  greet: function() {
    return "Original";
  }
};

obj.greet = function() {
  return "Overridden";
};

console.log(obj.greet()); // 输出: "Overridden"

方法四:使用 Object.assign 合并对象

通过合并对象实现方法替换,保留未覆盖的原有方法。

const base = {
  methodA() { return "A"; },
  methodB() { return "B"; }
};

const override = {
  methodA() { return "New A"; }
};

const result = Object.assign({}, base, override);
console.log(result.methodA()); // 输出: "New A"
console.log(result.methodB()); // 输出: "B"

方法五:高阶函数包装

通过函数包装动态修改方法行为,保留原方法的引用。

js override 实现

function original() {
  return "Original";
}

function override(fn) {
  return function() {
    return "Modified: " + fn();
  };
}

const wrapped = override(original);
console.log(wrapped()); // 输出: "Modified: Original"

注意事项

  • 原型链覆盖会影响所有实例,而对象属性覆盖仅影响当前实例。
  • 使用 super 时需确保在 classextends 上下文中。
  • 直接修改内置对象原型(如 Array.prototype)可能导致不可预期行为,应谨慎使用。

标签: jsoverride
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…