日期:2014-05-16  浏览次数:20407 次

chrome 浏览器奇怪问题
<script type="text/javascript">
     
        var dd = [{ a: 0, b: "b" }, { a: 1, b: "b" }], status = {};
        for (var i = 0; i < dd.length; i++) {
            var obj = dd[i];
            status[obj.a] = obj.b;
        }
        var s = "";
        for (var i in status)
            s += status[i];
        alert(s);
    </script>

chrome 浏览器弹出[Object Object],将status改个名字,就是预期的结果!坑爹死了
chrome?浏览器奇怪问题

------解决方案--------------------
这段代码在全局下,status又恰好和window.status重名。

之所以是[Object Object],是因为chrome把window.status设置为字符串类型的,而不是任意类型。因为之前window.status这个值是有用处的,该值指示了浏览器窗口下方状态栏的信息。后来某些原因,没有这个状态栏了,程序员也没有用status改变状态栏信息的需求。

var status = {} 与:
window.status = ({}).toString(); 等价。所以是一个空object的toString结果。