gpt4 book ai didi

javascript - 为什么要检查原型(prototype)而不是实例?

转载 作者:行者123 更新时间:2023-11-29 09:53:33 25 4
gpt4 key购买 nike

我刚刚在读this answer regarding hashing in Javascript , 而且,虽然它肯定比接受的答案更快,但它需要 Array 原型(prototype)上的 reduce 函数。

检查 reduce 函数是否存在很容易;但是,尽管我所做(并且已经看到)的大多数检查都是针对原型(prototype)进行检查的,但这让我想知道:针对实例本身进行检查的含义是什么?为什么原型(prototype)检查似乎更受欢迎?

// i.e.

if (!!Array.prototype.reduce) { }
// vs
if (!![].reduce)

实例肯定需要一个实例,所以这是一回事,但真的是这样吗?

最佳答案

刚刚运行了一个基准测试:http://jsperf.com/prototype-vs-instance-property-check

Array.prototype.reduce 由于空数组的实例化而快了 3 倍,但实际上,绝对没有区别,因为这些检查几乎总是一次性检查,而不是在代码中一直运行。

多年来,我个人一直将其简化为 [].method。我对 Array.prototype.slice.call( .. )[].slice.call( ... ) 之类的事情做同样的事情,这些被称为 far不止一次。

但请注意,这仅在 Array 上有效,因此您实际上并没有节省很多。

关于javascript - 为什么要检查原型(prototype)而不是实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com