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以下运行第二段代码会出错