MST
星途 面试题库

面试题:JavaScript 中如何为现有类扩充实例方法

假设有一个简单的JavaScript类如下: ```javascript class Animal { constructor(name) { this.name = name; } } ``` 请使用至少两种不同的方式为 `Animal` 类扩充一个 `sayHello` 实例方法,该方法在调用时打印出 `Hello, I'm [name]`,其中 `[name]` 为实例的 `name` 属性值。
21.9万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 在类定义内部直接添加方法
class Animal {
  constructor(name) {
    this.name = name;
  }
  sayHello() {
    console.log(`Hello, I'm ${this.name}`);
  }
}
  1. 使用 Object.defineProperty
class Animal {
  constructor(name) {
    this.name = name;
  }
}
Object.defineProperty(Animal.prototype, 'sayHello', {
  value: function() {
    console.log(`Hello, I'm ${this.name}`);
  },
  enumerable: false,
  writable: true,
  configurable: true
});
  1. 直接在原型对象上添加方法
class Animal {
  constructor(name) {
    this.name = name;
  }
}
Animal.prototype.sayHello = function() {
  console.log(`Hello, I'm ${this.name}`);
};