当前位置:首页 > JavaScript

js多态实现的三种形式

2026-03-02 03:12:24JavaScript

多态的基本概念

多态是面向对象编程的核心特性之一,允许不同对象对同一消息(方法调用)作出不同响应。JavaScript通过动态类型和原型链实现多态,常见形式包括:

基于原型链的多态

通过原型继承实现方法的重写,子类覆盖父类方法:

function Animal() {}
Animal.prototype.sound = function() { return "Generic sound"; };

function Dog() {}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.sound = function() { return "Bark"; };

const dog = new Dog();
console.log(dog.sound()); // 输出 "Bark"

基于对象字面量的多态

直接通过对象属性实现不同行为,无需类继承:

const bird = {
  sound: function() { return "Chirp"; }
};
const cat = {
  sound: function() { return "Meow"; }
};

function makeSound(animal) {
  console.log(animal.sound());
}
makeSound(bird); // 输出 "Chirp"
makeSound(cat);  // 输出 "Meow"

基于函数参数的多态

利用函数参数动态调用不同实现:

function calculate(operation, a, b) {
  return operation(a, b);
}
const add = (x, y) => x + y;
const multiply = (x, y) => x * y;

console.log(calculate(add, 2, 3));      // 输出 5
console.log(calculate(multiply, 2, 3)); // 输出 6

关键区别

  • 原型链多态:依赖继承关系,适合需要复用父类逻辑的场景。
  • 对象字面量多态:灵活轻量,适合小型对象或组合模式。
  • 函数参数多态:通过高阶函数实现,常见于函数式编程。

根据具体需求选择合适形式,原型链适合复杂继承结构,对象字面量和函数参数更适合松耦合设计。

js多态实现的三种形式

标签: 三种形式
分享给朋友:

相关文章

js用三种方法实现异步

js用三种方法实现异步

使用回调函数(Callback) 回调函数是传统的异步实现方式,通过将函数作为参数传递给异步操作,在操作完成后调用该函数。 function fetchData(callback) {…

php用那几种形式实现多态

php用那几种形式实现多态

PHP实现多态的方式 在PHP中,多态主要通过以下几种方式实现: 继承与方法重写 通过子类继承父类并重写父类的方法来实现多态。子类可以根据需要重新定义父类的方法,从而实现不同的行为。 cl…

php 锁 三种实现

php 锁 三种实现

文件锁(flock) 使用 flock() 函数对文件进行加锁,适用于单机环境下的进程同步。 代码示例: $fp = fopen("lockfile.lock", "w+"); if (floc…

php实现url形式

php实现url形式

在 PHP 中实现 URL 形式的处理 PHP 提供了多种内置函数和方法来处理 URL,包括解析、构建、编码和解码等操作。以下是常见的 URL 操作实现方式: URL 编码和解码 使用 urlen…

php用那几种形式实现多态

php用那几种形式实现多态

多态的基本概念 多态是面向对象编程的核心特性之一,允许不同类的对象对同一消息作出不同响应。在PHP中,多态主要通过以下几种形式实现。 方法重写(Override) 子类继承父类后,可以重写父类的方法…

php 锁 三种实现

php 锁 三种实现

PHP 锁的三种实现方式 文件锁(flock) 使用 PHP 的 flock 函数对文件进行加锁,适用于单机环境。flock 支持共享锁(LOCK_SH)和独占锁(LOCK_EX)。 $fp =…