是否有类似的方法来创建没有原型的数组?

时间:2015-12-15 08:47:46

标签: javascript arrays object

对于Object.create(null),是否存在与Array类似的内容,其中对象没有原型?

var someArray = [];
someArray.__proto__ = null;

2 个答案:

答案 0 :(得分:1)

不,没有Array.create这样的东西可以创建没有原型的数组。但是,__proto__被鄙视(它只是遗产),正确的方法是

var someWeirdArray = Object.setPrototypeOf([], null);

还具有单个表达式的优点。

只是提醒一句(希望你不需要): 不要这样做! 没有好处原因。

答案 1 :(得分:0)

我知道这很老了,但是对于将来的观看者来说,如果您想要一个不带原型权重的数组,只需使用Object.create(null)并用数字作为键即可。

const myEmptyObj = Object.create(null)

myEmptyObj[0] = 'someStuff'
myEmptyObj[1] = 'someOtherStuff'

您甚至可以说服数组方法对其进行处理。我没有尝试过,但是:

const arrMap = (fn, arr) => Array.prototype.map.call(arr, fn)

其中arr是有问题的对象,fn是您的地图函数...