Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JavaScript中的对象创建数组?_Javascript_Arrays_Object_Prototype - Fatal编程技术网

如何从JavaScript中的对象创建数组?

如何从JavaScript中的对象创建数组?,javascript,arrays,object,prototype,Javascript,Arrays,Object,Prototype,我正在学习JavaScript中类似数组的对象,并试图找出array和Object之间的本质区别。所以我想,如果我创建一个对象并将其属性设置为与数组相同,那么array.isArray(obj)的结果会变成真的吗?我这样做: 让obj=Object.create(Array.prototype); 设arr=[]; Object.defineProperty(obj,“长度”{ 值:0, 可写:对, 可枚举:false, 可配置:false }); console.log(Array.isAr

我正在学习JavaScript中类似数组的对象,并试图找出
array
Object
之间的本质区别。所以我想,如果我创建一个对象并将其属性设置为与数组相同,那么
array.isArray(obj)
的结果会变成真的吗?我这样做:

让obj=Object.create(Array.prototype);
设arr=[];
Object.defineProperty(obj,“长度”{
值:0,
可写:对,
可枚举:false,
可配置:false
});

console.log(Array.isArray(obj))//false
try
Object.create(Array.prototype,{constructor:{value:Array}})
。如果您不确定是否可以将对象转换为数组,也可以在第二个参数中向对象添加
length
定义。应该直接调用抽象操作,而抽象操作又直接检查参数是否为数组。所以,它不应该是duck-type。你可以制作一个对象,这样它就可以在
for…of
循环中使用,但是数组和对象是根本不同的东西。数组是值的有序列表,而对象是键到值的映射。是的,我知道,数组是对象,因为它们的原型链中有Object.prototype,但它们有一个不同的用途。