有关临时对象被销毁的问题。
当完成访问以后零食对象会被销毁掉,那问什么alert(a.length)返回了6,没被销毁,然而alert( a.t )却返回undifined,被销毁了呢?
当完成访问以后零食对象会被销毁掉,那问什么alert(a.length)返回了6,没被销毁,然而alert( a.t )却返回undifined,被销毁了呢?
2015-07-27
我的理解是,调用length的时候,a会变成String对象,既然是对象那么就有方法和属性,所以就可以使用length方法了,假设a.length显示为6然后销毁,于是我们手贱再来次a.length于是乎再一次a变为了String对象再次调用length属性,显示6后再次销毁;但是a.t=5意味着先将a转换为String对象由于String对象没有t属性,于是a.t在此刻创建了一个临时属性t,它和length相比length早已存在在String中而t却是我们刚刚创建的,于是我们输入完a.t=5;之后t属性立即销毁,如果再次输入a.t显示undefined;这很正常t在前边已被销毁意味着前边我们在String对象创建的临时t属性已被销毁,那么此时我们的t属性编译器怎么能认识?如果我们alert(a.t=5)这时编译器会弹出5这个选框,然后t被销毁,我们再次alert(a.t)会发现是undefined,原因同上t被销毁了,至于length同样也被销毁了,但是length是实打实的存在于String对象中只要转换为String对象,那么String必然有length属性。
举报