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

来源:4-3 [JavaScript]属性操作

qq_巧克力人生

2016-12-23 10:49

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

写回答 关注

2回答

  • 建聪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


    建聪0 回复qq_巧克力...

    obj.y是一个对象,才会有obj.y.z

    2016-12-28 14:18:10

    共 3 条回复 >

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

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

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281101 学习 · 1020 问题

查看课程

相似问题