高程笔记-ECMAScript中的所有函数的参数都是按值传递的
写在前面
关于这个问题,我的心路历程是:
疑惑(第一次看到时,心里冒了无数个小问号)->纠结(@[email protected],查了点资料,哪一种说法)->摆脱纠结(有了倾向和理解)。
网上争议比较多,但大都大同小异,我仅以自己所观所感,做说法的总结和自己的理解。
我比较倾向的说法
参数的传递方式实际上有3种,第三种按共享传递,既不是纯粹的值传递,又不是纯粹的引用传递,而是介于两者之间的而共享传递是指,在传递对象的时候,传递对象的引用的副本,有的还称为地址值传递(参数传递的是对象的地址,这个地址是一个值)
当执行obj = new Object();
时,新new一个对象赋值给该指针,指针指向的就是一个全新的对象了,和原来指向的对象失去联系:
个人理解
把其理解为按值传递是正确的,但也不必过分纠结所谓的第三种传参方式。不管是哪种说法,都是有相同的宗旨。我想,实践的结果就是硬道理。