html - JavaScript的window.Math为什么不能迭代出来?
本文介绍了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屋!
查看全文