时光荏苒

你我的人生,如果有目标有景致,有进取心,有进退自如的余地,能够“由自己主宰”,就是好人生,就是体面的人生。

关于指针

在《JavaScript高级程序设计》看到的例子:


最后的alert的结果是啥?是"first"! 真是百思不得其解 说道底就是指针和引用类型掌握的不彻底。。。请教别人后才知道来由。。

变量a创建了一个空对象。然后作为参数Obj传给了函数change()。这个时候,参数Obj就是a在change()函数中的一个指针。而指针Obj的操作.name为a这个对象增加了一个新的属性name,值是first。这个时候,如果没有那句 Obj = new Object();的话,很和谐。下面一句话重写了name的值,alert a.name以后会得到"second"。但是,加了Obj = new Object()以后,Obj再也不是a的一个指针了,而是一个新的对象,在内存中也占有一席之地了!⊙﹏⊙ 所以后一句话的意思就是为新对象Obj添加了一个新的属性name和新值“second”。但可惜的是永远不能在外部访问到他,他会在函数执行完毕后自动的销毁。然后再看



虽然调用函数的两个结果都是“second”,但是两个Obj所带表的东西完全两样。第一个一直都是a的指针,而第二个定义了一个对象,他就是对象的本身了。



评论(2)

热度(8)