上面的例子说明能遍历自己对象上的的可枚举属性金沙手机客户端和还遍历了原型上可枚举属性

当前位置:金沙手机版登录 > 金沙手机客户端 > 上面的例子说明能遍历自己对象上的的可枚举属性金沙手机客户端和还遍历了原型上可枚举属性
作者: 金沙手机版登录|来源: http://www.dl-sgokd.com|栏目:金沙手机客户端

文章关键词:金沙手机版登录,不可枚举

  我最近在学习vue的双向绑定原理,用到一个了Object.defineProperty()方法。如果不太理解这个方法可以点击这里。其中有个enumerable 配置项,如下

  可枚举属性是指那些内部 “可枚举” 标志设置为 true 的属性。对于通过直接的赋值和属性初始化的属性,该标识值默认为即为 true。但是对于通过Object.defineProperty等定义的属性,金沙手机客户端该标识值默认为 false。

  其中js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等。

  可枚举的属性可以通过for...in循环进行遍历(除非该属性名是一个Symbol),或者通过Object.keys()方法返回一个可枚举属性的数组。

  下面是上述代码在谷歌浏览器中打印出来的log,浅色的sex就是不可枚举属性。而for...in循环也只是打印出来了一个name,不可枚举的属性也能直接获取它的值。

  我通过的。如果想遍历对象的所有属性,Object.getOwnPropertyNames()方法可实验的出来的结论是,在对象属性中标识不可枚举的属性,一般不能为遍历工具所遍历,金沙手机客户端但是还是可以直接读取以解决这个问题。这里是他的api

  如果用Object.getOwnPropertyNames方法的话可以遍历到它所有的属性,包括可枚举和不可枚举的属性。

  遍历对象的每一个可枚举属性,包括原型链上面的可枚举属性(js基本包装类型的原型属性是不能被遍历因为是不可枚举的)。

  上面的例子说明能遍历自己对象上的的可枚举属性和还遍历了原型上可枚举属性。

  上面只打印出来的name,说明Object.keys方法只能遍历自己的对象上的可枚举的属性,不能遍历自己原型上可枚举的属性。

  上面的例子打印出来了name和sex,说明它遍历自身对象的所有属性,包括可枚举不可枚举,但是原型上的属性是无法遍历的。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!