var obj6 = {x:1};
obj6.y = 2;
if(obj6.y){
obj6.y.z = 3;
var yz = obj6.y.z;
document.write(yz+"</br>");
}
结果是undefined,不是应该是3吗?
因为obj6.y=2,你已经将y变成了一个值属性,obj6.y.z=3不会将y变成一个对象,因此结果是undefined 是正常的。下确的做法是:
var obj={x:1}
obj.y={z:3}
Object {z: 3}
obj.y.z
3
obj.y必须是对象而不是一个值, obj.y={};obj.y.z=3;console.log(obj.y.z)