Array.create and Function.create

Jordan Harband ljharb at
Thu Jan 10 06:47:41 UTC 2019

An array with no prototype wouldn't have any of the iteration methods on
it; a function with no prototype wouldn't have .call/.bind/.apply - length
and name are own properties of functions, and length is an own property of
an array, so you'd get those regardless.

(`Array.from({ length: 1000 })` already creates an array of length 1000
without holes, fwiw)

On Wed, Jan 9, 2019 at 10:43 PM Sultan <thysultan at> wrote:

> Identical to Object.create but for Arrays and Functions.
> This method will allow you to create arrays with no prototype.
> This would allow authors the ability to use array objects as state
> containers without the need to resort to index-based objects with
> Object.create(null, length)
> When you want to both use an array-like struct as both a property and
> index-able map.
> A side-effect of this would afford engines a strong heuristic for avoiding
> holey-array look-ups operations when there's no prototype to walk.
> For example the following would create an array with a length of 1000
> without "holes".
> const arr = Array.create(null, 1000)
> In addition this could also apply to functions with
> Function.create(null, () => {})
> When you want to use functions as state-containers but don't want any of
> the implicit properties(length, name) etc.
> _______________________________________________
> es-discuss mailing list
> es-discuss at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list