2-js函数值传递
如果参数为原始类型,则js创建一个隐性复制,传入函数中,函数内部修改值不影响外部对象;如果参数为对象类型,则传入对象指针的复制(不理解指针的看前篇)
前者比较好理解,重点以例子讲解后者
首先函数传递的参数为对象时,传递的是对象指针的复制。也就是说虽然内存中有两个person,但指向的数据都是同一个
perseon.age = 26并没有改变指针指向 直接修改内部值 所以 原始对象也被改变
person = {name: 'yyy', age: 30 } 相当于通过new Object() 创建一个新的对象 该指针的指向改变,不再指向原对象 而是一个新对象。
所以p1为{ name: 'yck', age: 26 } p2为{ name: 'yyy', age: 30 }
Last updated
Was this helpful?