为什么我不能使用Underscore或lodash迭代`performance.timing`?

时间:2015-05-27 13:03:29

标签: javascript performancecounter

为什么这样:



setTimeout(function(){
    var myObj = {
        'hello':'world',
        'more':'things'
    };
    
    _.each(myObj, function(value, key){
        console.log(key, value);
    });
    
    // why doesn't this output anything?    
    _.each(performance.timing, function(value, key){
        console.log(key, value);
    });
    
    // just to make sure we can
    console.log(performance.timing);
},500);

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;

输出:

> hello world
> more things
> PerformanceTiming {}

我希望对象的键和值的输出与myobj相同。

下划线:http://jsfiddle.net/a43vb7gd/1/
lodash:http://jsfiddle.net/mkxncwax/1/

在Ubuntu 14.04.2 LTS上的Chrome 43.0.2357.81和Firefox 38.0上重现。

screenshot of code and console output

1 个答案:

答案 0 :(得分:0)

我唯一能想到的是宿主对象的怪异。 Object.keys(performance.timing)返回并清空数组。如果代码在页面上运行而在控制台中运行,则代码的行为也会有所不同。