问答详情
源自:4-3 [JavaScript]属性操作

结果和课程里面讲的不一样

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吗?

提问者:qq_巧克力人生 2016-12-23 10:49

个回答

  • 建聪0
    2016-12-23 13:36:37
    已采纳

    因为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


  • Myse1f3568927
    2017-02-17 00:39:48

    obj.y必须是对象而不是一个值,  obj.y={};obj.y.z=3;console.log(obj.y.z)