JS属性读写问题
这里obj.y.z什么意思,学JAVA没见过这么调用属性的,另外为什么上面var yz=obj.y.z不成立
下面的却可以成立,什么原因?
这里obj.y.z什么意思,学JAVA没见过这么调用属性的,另外为什么上面var yz=obj.y.z不成立
下面的却可以成立,什么原因?
2016-01-05
你好,老师讲的很清楚了,这里的 obj.y.z 的意思是在obj对象里找到 y ,再在 y 里找到 z ,报错的原因是 obj 里没有 y ,更谈不上 y 里有没有 z 了,所以 obj.y 和 obj.y.z 都会报错;下面是做了一个判断 if(obj.y); 如果obj.y 成立,执行里面的操作,还有 var yz = obj && obj.y && obj.y.z; 根据&&的运行规则,是从左向右执行的,如果有一个不符合则不再继续执行,这里从左向右执行,依次是 obj,如果obj不存在,则返回false,如果存在继续执行 obj.y ,如果 obj.y 不存在,返回false,如果存在,则继续向右执行 obj.y.z,如果 obj.y.z 不存在,返回false ,如果 obj.y.z 存在则全部符合,执行下面的语句,这个 var yz = obj && obj.y && obj.y.z; 相当于obj.y 一样,只是一个判断,只不过判断的更加严谨。
望楼主采纳!
举报