for in的key只能是string

用AS3開發時,new鍵值對,鍵爲int類型,但是這裏的鍵其實是string,編譯成JS語言後,JS是弱類型語言。這種寫法在部分移動設備上可能會導致遊戲卡死(崩掉)。

 

//錯誤用法
var map:Object = {};
map[1] = "one";
map[2] = "two";
map[3] = "three";
for(var key int in map){
    console.log(map[key]);
}

//正確示例,把string類型的key轉成int
map[1] = "one";
map[2] = "two";
map[3] = "three";
for(var key String in map){
    console.log(map[parseInt(key)]);
}

JS是弱類型語言,在AS3設置的變量類型在JS中其實是假的變量類型,JS不知道變量的類型,如果運行代碼的設備沒有處理(大部分設備都有做這個處理,但是也有設備沒有做這個轉化)string轉int,在layaNative上跑就會崩。

所以,開發中,要避免這種錯誤寫法。

key要用string類型,如果需要int,可以自行再轉化爲int

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章