如何在JavaScript中写枚举

JavaScript054

如何在JavaScript中写枚举,第1张

var obj = {name:"张三",age:18}for(var key in obj){console.log("key:" + key + ",value:" + obj[key])}//输出:key:name,value:张三和key:age,value:18//这里的可枚举性就是说for的这种写法可以得到这个对象的属性名 var obj1 = {}Object.defineProperties(obj1, {name: {value: "张三",enumerable: false},age: {value: 18,enumerable: false}})for(var key in obj1){console.log("key:" + key + ",value:" + obj[key])}

<script type="text/javascript">

Composite root = new Composite("root")

root.Add(new Leaf("Leaf A"))

root.Add(new Leaf("Leaf B"))

Composite comp=new Composite("Composite X")

comp.Add(new Leaf("Leaf XA"))

comp.Add(new Leaf("Leaf XB"))

root.Add(comp)

var obj = {name:"张三",age:18}

for(var key in obj){

    console.log("key:" + key + ",value:" + obj[key])

}

//输出:key:name,value:张三和key:age,value:18

//这里的可枚举性就是说for的这种写法可以得到这个对象的属性名

var obj1 = {}

Object.defineProperties(obj1, {

    name: {

        value: "张三",

        enumerable: false

    },

    age: {

        value: 18,

        enumerable: false

    }

})

for(var key in obj1){

    console.log("key:" + key + ",value:" + obj[key])

}

//这里不会输出任何东西,但是可以用obj1.name和obj1.age直接取值。

//当然obj1["name"]也是可以得到张三的。

//但是不能用for来枚举出他有什么属性。

//以上代码请在chrome或者火狐里面运行,IE9以下运行第二段代码会出错