微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 Object 类主要使用静态方法而 Array 类主要使用实例方法?

如何解决为什么 Object 类主要使用静态方法而 Array 类主要使用实例方法?

我想知道为什么在处理数组时,我通常使用 .split.indexOf.map 等实例方法,而在处理对象时,我主要使用静态方法Object 课?

我为 Object class 计算了 21 个静态方法,而 Arrays 只有 3 个,其中 2 个与创建而不是操作有关。

我能想到的唯一解释是,由于一切都继承自 JS 中的 Object,设计者希望尽可能保持这些 Object 对象的轻量级。

解决方法

我能想到的唯一解释是,由于一切都继承自 JS 中的 Object,设计者希望尽可能保持这些 Object 对象的轻量级。

原来如此。你不想用一堆方法来填充 Object.prototype,因为它们会在一切对象上(或者至少,从{{ 1}},默认情况下所有对象都会这样做,但您可以使用 Object.prototype 阻止它)。

还有第二个更微妙的原因:因为在一般情况下,您不希望对象更改基本操作。这就是您看到人们避免在对象上使用 Object.create 方法而是直接从 hasOwnProperty 使用它的原因之一:

Object.prototype

上述代码的作者想避免 if (Object.prototype.hasOwnProperty.call(obj,"name")) { // ... } 被重新定义为 hasOwnProperty 从而撒谎的可能性。 :-)

obj

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。