MST
星途 面试题库

面试题:JavaScript内置对象原型链与方法重写

假设你需要为JavaScript的数组对象(Array)添加一个新方法 'unique',用于返回数组中唯一的元素组成的新数组。要求使用原型链的知识来实现,并且说明这样做的原理以及可能会带来的影响。
26.6万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

实现代码

Array.prototype.unique = function() {
    return Array.from(new Set(this));
};

原理

通过将数组对象添加到 Array.prototype 上,使得所有数组实例都可以访问这个新方法。new Set(this) 会利用Set数据结构的特性(成员唯一),将数组中的重复元素过滤掉。Array.from 则是将Set对象转换回数组。

可能带来的影响

  • 优点:方便了数组去重操作,提高了代码的复用性,开发者在使用数组时可以直接调用 unique 方法进行去重,不需要每次都手动实现去重逻辑。
  • 缺点:会污染原生的 Array.prototype,可能与未来JavaScript标准新增的方法产生命名冲突。同时,对于不熟悉原型链扩展的开发者,可能在维护代码时造成一定困惑。