functionsetName(obj){obj.name='Nicholas';obj=newObject();obj.name="Greg";console.log(obj.name);//"Greg"}varperson=newObject();setName(person);alert(person.name)setName這個函數(shù)理解起來有點障礙:person這個對象作為參數(shù)傳入setName函數(shù),局部參數(shù)obj,按照書本的說法按值傳遞,那么這里的值應該是“指針”,所以,obj復制了一份指向person的指針,obj存放的指針指向的也是person。接著,又new實例化一個對象,這個對象指針保存在了參數(shù)obj中,所以這個時候obj指向了一個新的對象,指向person也就斷開了?然后,后面思路就混亂了,因為obj這只是局部參數(shù),obj.name輸出的是Greg。最后.alert又彈出Nicholas,說明,前面obj斷開person的指針又續(xù)上了?怎么續(xù)上的?可能表述的不太清楚,主要是不太清楚指針是怎么變化的。
JS函數(shù)參數(shù)傳遞的疑問,引用類型指針是怎么變化的?
慕虎7371278
2019-05-11 17:04:21