要记住,ECMAScript中所有的函数都是按值传递的。就是把函数外部的值复制给函数内部的参数。
基本类型值(Undefined/Null/Boolean/Number/String)的传递和基本类型变量的复制一样。
引用类型值的传递,比如Object,Array,Function,Date等,会先把这个值在内存中的地址复制给一个局部变量,若局部变量变化,则局部变量和复制给局部变量路径的全局变量也会发生改变。如果局部变量指向了一个新的堆内地址,再改变局部变量的属性,不会影响全局变量。
要记住,ECMAScript中所有的函数都是按值传递的。就是把函数外部的值复制给函数内部的参数。
基本类型值(Undefined/Null/Boolean/Number/String)的传递和基本类型变量的复制一样。
引用类型值的传递,比如Object,Array,Function,Date等,会先把这个值在内存中的地址复制给一个局部变量,若局部变量变化,则局部变量和复制给局部变量路径的全局变量也会发生改变。如果局部变量指向了一个新的堆内地址,再改变局部变量的属性,不会影响全局变量。
本文标题:JS函数传递参数是Object时,是按值传递还是按引用传递?
本文链接:https://www.haomeiwen.com/subject/yxkvrttx.html
网友评论