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改个名字,就是预期的结果!坑爹死了
------解决方案--------------------这段代码在全局下,status又恰好和window.status重名。
之所以是[Object Object],是因为chrome把window.status设置为字符串类型的,而不是任意类型。因为之前window.status这个值是有用处的,该值指示了浏览器窗口下方状态栏的信息。后来某些原因,没有这个状态栏了,程序员也没有用status改变状态栏信息的需求。
var status = {} 与:
window.status = ({}).toString(); 等价。所以是一个空object的toString结果。