当前位置:首页 > JavaScript

js override 实现

2026-02-01 05:32:02JavaScript

方法一:使用原型链继承实现方法重写

通过修改对象的原型链,可以在子类中覆盖父类的方法。这是 JavaScript 中最常见的 override 实现方式。

function ParentClass() {
  this.method = function() {
    return 'Parent method';
  };
}

function ChildClass() {
  this.method = function() {
    return 'Child method';
  };
}

ChildClass.prototype = new ParentClass();

const instance = new ChildClass();
console.log(instance.method()); // 输出 "Child method"

方法二:使用 ES6 class 语法实现方法重写

ES6 的 class 语法提供了更清晰的方法重写方式,使用 extends 和 super 关键字。

js override 实现

class Parent {
  method() {
    return 'Parent method';
  }
}

class Child extends Parent {
  method() {
    return 'Child method: ' + super.method();
  }
}

const child = new Child();
console.log(child.method()); // 输出 "Child method: Parent method"

方法三:直接修改对象实例方法

对于已存在的对象实例,可以直接修改其方法实现覆盖。

js override 实现

const obj = {
  method: function() {
    return 'Original method';
  }
};

// 覆盖原有方法
obj.method = function() {
  return 'Overridden method';
};

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

方法四:使用 Object.defineProperty 实现属性重写

通过属性描述符可以更精细地控制方法覆盖行为。

const obj = {
  method: function() {
    return 'Original method';
  }
};

Object.defineProperty(obj, 'method', {
  value: function() {
    return 'Overridden via defineProperty';
  },
  writable: true,
  enumerable: true,
  configurable: true
});

console.log(obj.method()); // 输出 "Overridden via defineProperty"

方法五:使用 Proxy 实现方法拦截

ES6 Proxy 可以提供更高级的方法覆盖和拦截能力。

const target = {
  method: function() {
    return 'Original method';
  }
};

const handler = {
  get(target, prop) {
    if (prop === 'method') {
      return function() {
        return 'Proxied method';
      };
    }
    return target[prop];
  }
};

const proxy = new Proxy(target, handler);
console.log(proxy.method()); // 输出 "Proxied method"

标签: jsoverride
分享给朋友:

相关文章

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…