JavaScript函数传参---按值传递
所有函数的参数都是按值传递的,也就是说把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。所以如果能理解变量的复制,那么参数的传递也就很简单了。
1 | let obj = { |
总所周知,在JavaScript中,引用数据类型存储在堆中,传递时传递的实际上是指向此地址的一个指针,如上例,obj作为参数被传递到了函数内部,实际上相当于复制了一个指针,而指针指向的地址还是此对象所对应的地址,所以改变了函数的参数属性,实际上相当于操作obj的属性改变。
1 | let obj = { |
如上,当对参数arr再次赋值时,此时这个指针指向的地址就发生了改变,指向了所赋值的新对象{},从而与obj无关了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 webRambler-blog!
评论