文档章节

for in与Object.keys,Object.getOwnPropertyNames的区别

没文化不开心
 没文化不开心
发布于 2017/08/29 02:25
字数 206
阅读 17
收藏 0

for in  会遍历对象的可枚举属性

Object.keys 会遍历对象自身可枚举属性,相当于for in再用 hasOwnProperty 判断过滤一遍

Object.getOwnPropertyNames 会遍历对象自身所有属性(可枚举和不可枚举的)

 

 

 

1.可枚举属性

对象的属性是否可枚举,是由enumerable属性定义的 

Object.defineProperty(obj, prop, descriptor)

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

2.自身的属性

不是继承得到的

 

应用    ---拖拽文件获得文件信息(绝对地址)

            const dropbox = document.getElementById("dropbox");
            dropbox.addEventListener("dragenter", function(e){  //先要阻止默认事件
                e.stopPropagation();
                e.preventDefault();
            }, false);

            dropbox.addEventListener("dragover", function(e){
                e.stopPropagation();
                e.preventDefault();
            }, false);

            dropbox.addEventListener("drop", (e)=>{
                e.stopPropagation();
                e.preventDefault();
                let files = e.dataTransfer.files;     //获取filelist对象
                console.log(files)
                let pathArr = Object.keys(files).map(v=>{   //该对象有length和item等不需要的属性
                    return files[v].path
                })
                console.log(pathArr)
            }, false);

 

© 著作权归作者所有

上一篇: vue引入js-cookie
下一篇: electron实践(2)
没文化不开心

没文化不开心

粉丝 4
博文 42
码字总数 16311
作品 0
大兴
私信 提问
Object.getOwnPropertyNames和Object.keys区别

返回对象自己(非原型继承的属性)的属性名称,包括函数。 方法:   Object.getOwnPropertyNames(object);   Object.keys(object); 参数:   object,如果不是object类型,则引发TypeErr...

常思过
2013/10/09
0
0
JavaScript中Object.keys、Object.getOwnPropertyNames区别

定义 Object.keys 定义:返回一个对象可枚举属性的字符串数组; Object.getOwnPropertyNames 定义:返回一个对象可枚举、不可枚举属性的名称; 属性的可枚举性、不可枚举性 定义:可枚举属性...

嗯哼9925
2017/11/22
0
0
JavaScript 中 Object ,Prototype 相关的属性和方法

1.Objuect 类型 Object 类型是所有对象的基类型,可以用 new 运算符产生一个 Object 类型。 开发者可以通过产生 Object 类型的实例并向其动态添加属性和方法来产生自己需要的 对象。如: va...

随智阔
2013/11/26
0
0
关于JavaScript原型属性若干特点的分析

delete关键字 对象属性会屏蔽原型属性,通过删除对象的属性,可以继续访问原型属性,达到解除屏蔽的目的,看如下代码: 如代码所示,给添加了方法,屏蔽掉了原型上的,通过关键字删除对象上的...

Bob2100
2018/10/27
0
0
ES6 对象的扩展

一、对象属性的简洁写法 1、属性简写 2、方法简写 二、属性名表达式 在ES5中,定义对象的属性有两种方法 如果使用字面量方式定义对象,在ES5中只能使用方法一,而在ES6中可以使用方法二: 属...

贵在随心
2018/01/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux下ctrl+c中止不了

有一台centos7的服务器,ctrl+c无效,并且tail -f也无效,只能关掉终端或者crtl+z放入后台再删掉,但是ping的时候使用ctrl+c是有效果的。 出现这种情况的原因可能是因为有人要使用ruby安装r...

gaolongquan
26分钟前
1
0
Android三年工作面经

工作三年出来看看新的机会,依次面试过如下公司: 小米(北京) iHandy(北京) 涂鸦智能(杭州) 微软(北京) 宜信(北京) 蚂蚁金服(杭州) 瓜子二手车(北京) 高德(北京) 基本上投递的简历都得到了面...

JerryLin123
29分钟前
2
0
开发函数计算的正确姿势——tensorflow serving

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计...

阿里云云栖社区
32分钟前
7
0
社区角色(Kubernetes社区Maintainer是什么角色?)

社区成员按照角色,分为member、reviewer、approver、subproject owner。 下面我们介绍一下每个角色的职责和要求。 member reviewer approver subproject owner...

恋恋美食
49分钟前
1
0
【JavaScript】callee 与 caller

callee callee是函数参数arguments对象的一个属性,它指向参数arguments对象所在的函数自身。 function foo (x) {console.log(arguments.callee);return x;}foo(); 从控制台中可以看...

小草先森
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部