扩展原型数组

Extend proto Array

我对原型有疑问。 我正在做一个项目,我想为 Array 创建一个小型函数库,我有 3 种可能性。

扩展Array原型(但据我所知不推荐)

Array.prototype.arrayMax = function () {
    return Math.max(...this)
}

创建 Array 的子类。

function MyArray(...args) {
    Object.setPrototypeOf(args,MyArray.prototype)
    return args;
}
MyArray.prototype = Object.create(Array.prototype);
MyArray.prototype.arrayMax = function () {
    return Math.max(...this)
}

在Array传递参数的地方用不同的函数创建一个文件

const arrayMin = arr => Math.min(...arr);

如果我们选择这个选项,我使用 JS O.O 并且我的目录结构是

哪里可以加我这个存档js

最正确的选项是什么?

目前第三个选项(实现功能)是最佳选择,因为向内置原型添加功能是一个坏主意:如何解决歧义?如果其他库将同名函数添加到 Array.prototype 会发生什么?

第二个选项不会有歧义问题,但在#1 和#2 中你失去了使用语法声明数组的机会(即 [])。

关于将代码放在哪里,这是主观的。我会把它放在一个名为 commonshared 的文件夹中,或者放在工作区的根目录中。