列出对象属性,for(var i in obj)

来源:互联网 发布:家具设计用什么软件 编辑:程序博客网 时间:2024/06/05 02:26
列出对像属性,for(var i in obj)


function listProperties(obj, objName) {
    var result = "";
    for (var i in obj) {
        result += objName + "." + i + "=" + obj[i] + "\n";
    }
    alert(result);
}


/*库中有个MC*/
var mc:MC;
var arr:Array = new Array  ;
for (var i:int=0; i<10; i++){
    mc = new MC  ;
    mc.x = 100;
    mc.y = 100;
    addChild(mc);
    arr.push(mc);
}
for (var a in arr){
    trace(a);
    removeChild(arr[a]);
}
arr = [];
trace(arr.length);


var count:int = container.numChildren;
for (var i:int = 0; i < count; i++){
    container.removeChildAt(0);
}


/*for..in遍历对象的动态属性或数组中的元素,并对每个属性或元素执行 statement。
对象属性不按任何特定的顺序保存,因此属性看似以随机的顺序出现。
固定属性(如在类中定义的变量和方法)不能由 for..in 语句来枚举。
要获得固定属性列表,请使用 flash.utils 包中的 describeType() 函数。
 
for each..in 循环用于循环访问集合中的项目,它可以是 XML 或 XMLList 对象中的标
签、对象属性保存的值或数组元素。例如,如下面所摘录的代码所示,您可以使用 for
each..in 循环来循环访问通用对象的属性,但是与 for..in 循环不同的是,for each..in
循环中的迭代变量包含属性所保存的值,而不包含属性的名称:*/


var myObj:Object = {x:20,y:30};
for (var num0 in myObj){
    trace(num0);
    trace(myObj[num0]);
}
for each (var num in myObj){
    trace(num);
}
// 输出:
// 20
// 30


//可以循环访问 XML 或 XMLList 对象,如下面的示例所示:
var myXML:XML = <users>
<fname>Jane</fname>
<fname>Susan</fname>
<fname>John</fname>
</users>;


for (var item0 in myXML.fname){
    trace(item0);
    trace(myXML.fname[item0]);
}
for each (var item in myXML.fname){
    trace(item);
}
/* 输出
Jane
Susan
John
*/


//还可以循环访问数组中的元素,如下面的示例所示:
var myArray:Array = ["one","two","three"];
for (var item1 in myArray){
    trace(item1);
    trace(myArray[item1]);
}
for each (var item2 in myArray){
    trace(item2);
}
// 输出:
// one
// two
0 0