如何解决为什么 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 举报,一经查实,本站将立刻删除。