对于Object.create(null)
,是否存在与Array
类似的内容,其中对象没有原型?
var someArray = [];
someArray.__proto__ = null;
答案 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
是您的地图函数...