有些人认为,在js中,对于值类型是按值传递,对于引用类型是按引用传递,然而,这是错误的。
对于js中的变量,值类型存放在栈中,引用类型的地址存放在栈中,对应的值存放在堆中。
当传参发生的时候,值类型会直接将栈中的值进行复制,形参和实参此时实际上是两个完全不相干的变量。
对于引用类型,传参发生时,会将实参变量位于栈中的地址进行复制,此时栈中会有两个指向同一个堆地址的指针。
JS函数传参是传值还是传引用
最新推荐文章于 2024-05-09 19:16:07 发布
有些人认为,在js中,对于值类型是按值传递,对于引用类型是按引用传递,然而,这是错误的。
对于js中的变量,值类型存放在栈中,引用类型的地址存放在栈中,对应的值存放在堆中。
当传参发生的时候,值类型会直接将栈中的值进行复制,形参和实参此时实际上是两个完全不相干的变量。
对于引用类型,传参发生时,会将实参变量位于栈中的地址进行复制,此时栈中会有两个指向同一个堆地址的指针。