html - JavaScript的window.Math为什么不能迭代出来?

查看:132
本文介绍了html - JavaScript的window.Math为什么不能迭代出来?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

for(var i in window.Math){console.log(i);}
打印undefined

解决方案

https://developer.mozilla.org...
看一下这个方法;

给个例子先:

var e = {d:1};
Object.defineProperty(e, 'd',{enumerable:false});
for(var i in e) console.log(i);//同样输出不了d这个

e.e = 2;
for(var i in e) console.log(i);//只输出e
e.d//还是存在1

也就是说当你给对象设置了某个属性值具备enumerable:false时,用for in没法访问到

再看看Math,我们知道Math 有个random成员方法;for in没输出出来,我们看下他是不是也 enumerable:false

怎么看?

https://developer.mozilla.org...

Object.getOwnPropertyDescriptor(Math,'random')
//输出结果
//Object {writable: true, enumerable: false, configurable: true}

so?

这篇关于html - JavaScript的window.Math为什么不能迭代出来?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆