Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_File_Object - Fatal编程技术网

如何从JavaScript的文件对象获取所有键/参数/属性?

如何从JavaScript的文件对象获取所有键/参数/属性?,javascript,file,object,Javascript,File,Object,我从JavaScript上的一个文件对象获取密钥,但我不知道为什么Objects方法不起作用 我已经尝试过Object.keys()和Object.getOwnPropertyNames()。为什么这些方法不起作用 下面是一个例子: var obj = {name:'my_name',id:1,value:'my_val'} const file = document.getElementById('fileToUpload').files[0];

我从JavaScript上的一个文件对象获取密钥,但我不知道为什么Objects方法不起作用

我已经尝试过Object.keys()和Object.getOwnPropertyNames()。为什么这些方法不起作用

下面是一个例子:

        var obj = {name:'my_name',id:1,value:'my_val'}
        const file = document.getElementById('fileToUpload').files[0];

        console.log('Object.keys(file)',Object.keys(file));
        //Array []
        console.log('Object.keys(obj)',Object.keys(obj));
        //Array [3]
        console.log('Object.getOwnPropertyNames(file)',Object.getOwnPropertyNames(file));
        //Array []
        console.log('Object.getOwnPropertyNames(obj)',Object.getOwnPropertyNames(obj));
        //Array [3]
        console.log('file.name',file.name);
        //name.type
        console.log('obj.name',obj.name);
        //my_name
        console.log('Object',file);
        //File {...}
        console.log('Object',obj);
        //Object {...}
        console.log('type',typeof file);
        //object
        console.log('type',typeof obj);
        //object
Object.keys()
Object.getOwnPropertyNames()
只返回自己的属性,无论它们是否可枚举。在本例中,您试图获取的属性属于其
原型。所以这些方法不起作用

您仍然可以通过执行以下操作来获取其属性:

const attributes = [];
for (attribute in file) {
  attributes.push(attribute);
}