为了账号安全,请及时绑定邮箱和手机立即绑定

var yz=obj&&obj.y&&obj.y.z;

老师您好!我用Node.js运行了一下您提到的“var yz=obj&&obj.y&&obj.y.z;”代码和运行结果如下 没有起到获取obj.y.z的效果,是不是我哪里弄错了

http://img1.sycdn.imooc.com//57a5aacd00017e0905990307.jpg

正在回答

6 回答

http://img1.sycdn.imooc.com//5dada1810001520904240122.jpg这样子

0 回复 有任何疑惑可以回复我~

var obj={x:1}

obj.y={z:3}

obj.y.z


0 回复 有任何疑惑可以回复我~

这个问题的关键点在于若var y=2   

 y.z=3这个赋值语句过后y.z是否存在。

y.z实际验证之后是不存在的为undefined,可能因为 y的值是基本数据类型 而非对象,

0 回复 有任何疑惑可以回复我~

var obj2 = {  

     x:1,  

     y:2,  

     o: {  

         z:3,  

         n:4  

     }  

};  

这样定义就可以了

1 回复 有任何疑惑可以回复我~

我的理解是, 对于obj.y.z,如果y只是一个属性的话,这种写法本身就是错误的,y.z代表的是对象y里面的一个z属性,所以y本身必须也是一个对象,这样才会有意义啊~~

0 回复 有任何疑惑可以回复我~
#1

GISGOGOGO 提问者

有道理 能不能具体提供一段代码 我感觉还是不太会
2016-08-24 回复 有任何疑惑可以回复我~

试了一下 即使一开始将obj实例化为字符串  var obj = new Object("123aaa");  最终结果依然为undefined

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var yz=obj&&obj.y&&obj.y.z;

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信