为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

7 回答

我觉得上面的那个朋友说的很不清楚,那么我告诉一下吧,希望可以帮助你理解,一起进步

我举一个小例子来帮助你理解一下

var obj={x:1,y:2,z:3};

Object.defineProperty(obj,"f",{emuerable:false,value:4});

当我们执行

for(var i in object)

console.log(obj[i]);/输出1,2,3

Object.keys(object);//输入1,2,3

相信你看了上面的一些已经有了一些理解,你也可以再看一下下面的小知识点

for...in循环和Object.keys方法的区别,在于前者包括对象继承自原型对象的属性,而后者只包括对象本身的属性。如果需要获取对象自身的所有属性,不管enumerable的值,可以使用Object.getOwnPropertyNames方法

1 回复 有任何疑惑可以回复我~
#1

夏日勤 提问者

非常感谢!
2015-10-30 回复 有任何疑惑可以回复我~
#2

Down_Up

var cat=new Object;cat.name='kitty';cat.sex='man';Object.defineProperty(cat,'price',{enumerable:false,value:1000});var names=Object.getOwnPropertyNames(cat);for (var i = 0; i < names.length; i++){ var prop = names[i]; alert(prop + ': ' + obj[prop]+'hahahha');}
2016-04-25 回复 有任何疑惑可以回复我~
#3

Down_Up

输出不了,求改下,谢啦~
2016-04-25 回复 有任何疑惑可以回复我~
#4

qq_慕慕947699 回复 Down_Up

alert(prop + ': ' + obj[prop] + 'hahahha');//把obj改成cat alert(prop + ': ' + cat[prop] + 'hahahha');
2019-10-22 回复 有任何疑惑可以回复我~
查看1条回复

枚举是 一系列具有名称的常量。

0 回复 有任何疑惑可以回复我~

误导人!

0 回复 有任何疑惑可以回复我~

为什么我自定义对象属性

Object.defineProperty(cat,'price',{enumerable:false,value:1000})

console.log(cat.value)总提示说cat未定义呢。求解答,看单词也没拼错啊

0 回复 有任何疑惑可以回复我~
#1

小鲁鲁

console.log(cat.price) 上面说错了
2016-01-23 回复 有任何疑惑可以回复我~
#2

qq_慕慕947699

var cat = {}; //首先必须要定义好cat这个对象 Object.defineProperty(cat, 'price', { enumerable: false, value: 1000 }) console.log(cat.price) //1000
2019-10-22 回复 有任何疑惑可以回复我~

简单点说就是自己定义一组有意义数据,然后调用~

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript深入浅出
  • 参与学习       281112    人
  • 解答问题       1020    个

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

进入课程

什么是枚举

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信