DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 對象無length屬性時IE6/IE7中無法將其轉換成偽數組(ArrayLike)
對象無length屬性時IE6/IE7中無法將其轉換成偽數組(ArrayLike)
編輯:關於JavaScript     
有時需要將數組轉成偽數組(ArrayLike),如下
復制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {}; // 沒有length屬性
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}

IE8/9/Firefox/Safari/Chrome 依次彈出了obj的key及其value。即能轉換成ArrayLike。
但IE6/7下則不能,沒有輸出任何信息表明obj仍然是個空對象。
如果給obj加個length屬性,情況則不同
復制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {length:0}; // 有length,值為0
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}

這次IE6/7(所有浏覽器)中均彈出了key及其value,都能轉換成ArrayLike
注意,length只能賦值為0而非它值,否則得到的對象key和value就不是一一對應的了。
復制代碼 代碼如下:
var ary = ['one','two','three'];
var obj = {length:2}; // 有length,非零值
Array.prototype.push.apply(obj, ary);
for(var i in obj){
alert(i + ': ' + obj[i]);
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved